我们如何能迭代Map链接线性结构,即使它们被实现为红黑或AVL树?

问题描述 投票:0回答:1

我们如何能像迭代线性数据结构一样迭代地图,并告诉我我们如何简单地输入键来获得相关的值?

c++ algorithm dictionary hashmap
1个回答
0
投票

你应该使用迭代器来迭代。map:

std::map<int, int> myMap;
for (auto iter = myMap.begin(); iter != myMap.end(); ++iter)
  // do something with iter

或者你可以使用循环语法。

for (auto& myMapPair : myMap)
  // do something with the pair

请注意,在第一个版本中,你可以用以下方法访问密钥 iter->first和值与 iter->second作为 iter 是一个对的迭代器。对于第二个版本,你直接有一个对的引用,所以你应该使用 iter.firstiter.second.

至于从键中找值,你应该这样做。

auto iter = myMap.find(50);
if (iter == myMap.end()) // didn't find anything
  // do something
else // you found something
  // do something
© www.soinside.com 2019 - 2024. All rights reserved.