Предполагая, что вы говорите о STL, а не о какой-то сторонней библиотеке ... m[key]
не просто возвращает объект по умолчанию, если ключ отсутствует на карте. создаст новый элемент на карте с этим ключом и созданным по умолчанию объектом в качестве значения.
Вы можете использовать это:
map<string, int> mymap;
//add items to it
map<string, int>::iterator it = mymap.find("key");
if (it != myMap.end()) {
// 'key' exists; (it->second) is the corresponding int
}
Или, если вам не нужно получать объект (вы просто хотите узнать, существует ли он):
map<string, int> mymap;
//add items to it
if (mymap.count("key") == 1) {
// 'key' exists
}