通过迭代编写std :: map的元素

Met*_*est 3 c++ stl

我写了以下代码......

  PagesMap::const_iterator end = pagesMap.end(); 
  for ( PagesMap::const_iterator it = pagesMap.begin(); it != end; ++it )
  {
    ....
    it->second = 0; // Here I get the error
    //pagesMap[it->first] = 0; 
  }
Run Code Online (Sandbox Code Playgroud)

现在我在哪里it->second = 0;,我得到......

错误:在只读结构中分配数据成员'std :: pair :: second'

如果我使用该行下面的注释代码,它可以正常工作,但我认为它效率不高.有没有一种有效的方法来实现这一目标?

tro*_*foe 12

这是因为你正在使用const_iterator; 尝试iterator改为改为.