使用 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)
{
//
}
我知道为了在 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)
{
//
}