您的位置:首页 > 其它

std::map遍历删除某些元素问题

2006-05-22 16:48 591 查看
typedef map<int, string> INT2STR;
INT2STR m;

... ...

for (INT2STR::iterator itr = m.begin(); itr != m.end(); ++itr)
{
if (Condition(*itr))
m.erase(itr);
}

itr删除与遍历是否有问题,该如何改?

查阅: http://topic.csdn.net/t/20040819/09/3288683.html http://bbs.chinaunix.net/archiver/?tid-748398.html

正确方法应为: m.erase(itr++);
iterator删除后不该继续使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: