我们如何能像迭代线性数据结构一样迭代地图,并告诉我我们如何简单地输入键来获得相关的值?
你应该使用迭代器来迭代。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.first
和 iter.second
.
至于从键中找值,你应该这样做。
auto iter = myMap.find(50);
if (iter == myMap.end()) // didn't find anything
// do something
else // you found something
// do something