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删除后不该继续使用。
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删除后不该继续使用。