C++:在遍历/循环中删除map元素, 如何避免iter 迭代器失效

[复制链接]
查看11 | 回复1 | 2013-10-10 15:00:41 | 显示全部楼层 |阅读模式
如果你在不知情的情况下使用了失效的迭代器,后果是不可预料的。可能程序立即崩掉,也可能什么事都没有发生。崩掉了算你 幸运,因为你至少知道出了问题,不然有你受的。回到正题,我想说什么呢?比如:程序代码map theMap;// add something to theMap...for(auto iter1 = theMap.begin(); iter1 != theMap.end(); ++iter1){if(iter1->second == xxx){theMap.erase(iter1); //#1 erase the element ?!!}} 看样子貌似非常正常的一 段代码。在一个map中寻找值为xxx的项并删除。但是实际...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行