我正在编写一些基本上可以执行以下操作的代码:
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 */
}
}
我认为一定有更好的方法来做到这一点。有什么建议吗?
最佳答案
该函数应该为您返回下一个有效的迭代器。这就是 map
的正常 erase
功能的工作原理。
关于c++ - 遍历 map 的 map 和删除项目的最佳模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6200989/