博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
map/vector erase
阅读量:4649 次
发布时间:2019-06-09

本文共 839 字,大约阅读时间需要 2 分钟。

问题核心:erase之后迭代器是否失效

vector调用erase之后,该迭代器之后的迭代器都失效;

map调用erase之后,其他迭代器并不会失效。

1 vector
vecData; 2 for (typeof(vecData.begin()) it; it != vecData.end();) 3 { 4 if (*it == 1) 5 { 6 it = vecData.erase(it); 7 //vv.erase(it++); //vector erase之后,it迭代器后面的所有迭代器都会失效,所有不能用这种方式 8 } 9 else10 it++;11 }12 13 map
mapData;14 for (typeof(mapData.begin()) it = mapData.begin(); it != mapData.end(); )15 {16 17 if (it->second == 1)18 {19 /*20 * it 赋值给一个中间变量tmp,传给erase21 * it 自加22 * map调用erase删除tmp迭代器指向的元素23 * */24 mapData.erase(it++); //map erase可以,因为map erase之后只有该迭代器自身失效,其他迭代器不会受影响25 }26 else27 it++;28 }

 

转载于:https://www.cnblogs.com/070412-zwc/p/6741118.html

你可能感兴趣的文章
GET请求在Tomcat中的传递及URI传递
查看>>
软工网络15团队作业2——团队计划
查看>>
mysql 数据库远程访问设置方法
查看>>
Far manager界面混乱问题解决
查看>>
java读取xml文件
查看>>
Go数组和切片定义和初始化
查看>>
用javascript将数据导入Excel
查看>>
novoton-timer使用
查看>>
[Office]PPT 2013如何设置图片为半透明?
查看>>
原生js实现浏览器全屏和退出全屏
查看>>
选择排序(c++)
查看>>
特殊文件(下)
查看>>
ubuntu通过vmware与访问宿主的文件
查看>>
mysql 5.7 二进制安装方法
查看>>
244. Shortest Word Distance II
查看>>
385. Mini Parser
查看>>
React-组件的生命周期
查看>>
Git详解之四:服务器上的Git
查看>>
JavaScript 复杂判断的更优雅写法借鉴
查看>>
<mvc:annotation-driven/>浅析
查看>>