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

时间:2011-07-25 14:52:50

标签: 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; 
  }

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

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

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

1 个答案:

答案 0 :(得分:12)

这是因为你使用的是const_iterator;请尝试更改为iterator