Как мы можем перебрать линейную структуру ссылки Map, даже если они реализованы в виде красного черного или дерева AVL? - PullRequest
0 голосов
/ 23 апреля 2020

Как мы можем перебирать карту, как если бы она была линейной структурой данных, а также рассказывать мне, как мы просто вставляем ключ, чтобы получить ассоциированное значение .?

1 Ответ

0 голосов
/ 23 апреля 2020

Вы должны использовать итераторы для итерации по 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...