Яма ценности карты C++

искусственный интеллект

В C# принято использовать ключ в качестве нижнего индекса для доступа к значению в карте, например, строка valueStr = dataMap[key]; но в тесте C++ было обнаружено, что несуществующее значение ключа выносило ненулевое значение. Оригинальный алгоритм использования индекса для получения значения заключается в том, чтобы сначала проверить, есть ли этот ключ, а если нет, то вставить в качестве значения ключа значение по умолчанию.

Например:

string ss = myMap[99];

В это время вы обнаружите, что на карте есть ключ 99.

Есть два правильных подхода:

if(myMap.count(key)>0)

   {string valueStr = myMap[key];}

или

map<int,string>::iterator it;

it = myMap.find(key);

if(it != myMap.end())

  { string valueStr = it->second;}