澄清使用for迭代地图(auto iter:value)

时间:2015-07-26 02:16:57

标签: c++ loops c++11 maps

我知道为了在C ++ 11中循环遍历地图,我可以使用以下代码:

AM_CXXFLAGS

std::mymap<std::string, myclass> for(auto item : mymap) { // code here } 究竟指的是什么?它是地图键吗?当前访问的值?如果我想对值进行某些操作,我该如何访问它?

1 个答案:

答案 0 :(得分:2)

Iter在您的上下文中引用std::pair<std::string, myclass>。因此iter.first是您的关键,iter.second是您示例的值。

如果要修改循环块内的值,可以按如下方式编写:

iter.second=<new value>

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

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