std::map 通过遍历删除满足某些条件元素的两种方式
来源:互联网 发布:发票网络认证系统 编辑:程序博客网 时间:2024/05/19 20:46
方法一:
在这种方式中,通过std::map的erase方法在释放了it后会返回指向下一个元素的指针来获取最新的iterator方法二:
该方法中利用了后++的特点,这个时候执行mapTest.erase(it++);这条语句分为三个过程1、先把it的值赋值给一个临时变量做为传递给erase的参数变量
2、因为参数处理优先于函数调用,所以接下来执行了it++操作,也就是it现在已经指向了下一个地址。
3、再调用erase函数,释放掉第一步中保存的要删除的it的值的临时变量所指的位置。
如果只是mapTest.erase(it); 当这条语句执行完后,it就是一个非法指针,如果再执行++就会出错
总结,虽然上面两种方法达到了一个相同的效果,但是,更提倡使用第二种,第一种方法只适用于windows平台,并不是标准库的支持。
0 0
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map遍历删除某些元素问题
- std::map 删除指定条件的元素
- Map遍历的两种方式(首推entrySet())--遍历Map时删除元素的方法
- C++遍历中删除std::map元素
- C++遍历中删除std::map元素
- 测试对Vector容器,遍历元素删除满足条件元素,而进行Erase()操作的效率
- Python:找到列表中满足某些条件的元素
- map的四种遍历方式,map遍历元素
- map遍历的两种方式
- Map集合的两种遍历方式
- java map的两种遍历方式
- java map的两种遍历方式
- map的两种遍历方式
- 遍历Map集合的两种方式
- Map集合的两种遍历方式
- Javascrip检测类型
- 【解题报告】Codeforces Round #362 (Div. 2)
- c++动态链接
- jsoup
- HDU5640(水)
- std::map 通过遍历删除满足某些条件元素的两种方式
- Android之学习路线
- 【FFmpeg】ffplay播放rtsp视频流花屏问题
- Java Web学习(17):JSP动作元素(二)
- 数据结构(一)线性表
- js对json对象的增加
- gitignore无效的解决办法
- UI面板拖放
- TableLayout表格布局简介