迭代地图和删除项目的最佳模式是什么?

Nei*_*eil 2 c++ iterator stl

我正在研究一些基本上做的代码:

mapSize = map.size();
for(iter=map.begin;iter!=map.end();)
{
  call function which might delete a map item;
  if(map.size()==mapSize )
  {
     iter++;
  }
  else
  {
     mapSize = map.size();
     iter=map.begin(); /* Start again if something was deleted */
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为必须有更好的方法来做到这一点.有什么建议?

Pup*_*ppy 6

该函数应该为您返回下一个有效的迭代器.这就是map正常erase功能的工作原理.