Вы должны использовать итераторы для итерации по map
:
std::map<int, int> myMap;
for (auto iter = myMap.begin(); iter != myMap.end(); ++iter)
// do something with iter
или вы можете использовать синтаксис l oop:
for (auto& myMapPair : myMap)
// do something with the pair
Обратите внимание, что для первой версии Вы можете получить доступ к ключу с помощью iter->first
, а значение с помощью iter->second
, поскольку iter
является итератором для пары. Для второй версии у вас есть прямая ссылка на пару, поэтому вы должны использовать iter.first
и iter.second
.
Что касается поиска значения по ключу, вы должны сделать:
auto iter = myMap.find(50);
if (iter == myMap.end()) // didn't find anything
// do something
else // you found something
// do something