使用 for(auto iter : value) 遍历映射的说明

Clarification of iterating through maps using for(auto iter : value)

我知道为了在 C++11 中循环映射,我可以使用以下代码:

std::mymap<std::string, myclass>

for(auto item : mymap)
{
    // code here
}

item具体指的是什么?是地图键吗?当前访问的值?如果我想对这个值做些什么,我该如何访问它?

Iter 在您的上下文中指的是 std::pair<std::string, myclass>。所以 iter.first 是你的关键,iter.second 是你的例子的价值。

如果想修改循环块内的值,可以这样写:

iter.second=<new value>

如果您不需要修改值更好地使用您的范围循环,如下所示:

for(const auto& iter : mymap)
{
 //
}