В 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;}