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

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

1、迭代器删除元素

1.序列容器,比如vector

序列容器的erase返回的是被删除元素后的有效迭代器。

vector
vec;vector
::iterator iter;for(iter = vec.begin();iter!=vec.end();){ if(need_delete) { iter = vec.erase(iter); }else ++iter;}

如果上面程序中要在for循环中使用++iter的话,就需要在删除元素后做一次--iter操作,但这样的效率显然没有上面代码效率高。注意到vector的erase方法在执行后,当前迭代器自动指向了下一个元素位置,这也是为什么不要在删除元素后再++iter的原因。

转载于:https://www.cnblogs.com/wft1990/p/6618917.html

你可能感兴趣的文章
centeros iptable模板文件
查看>>
Ajax的原理和应用 (转载,资料收集,整理)
查看>>
tomcat用root权限也起不来
查看>>
黑马程序员2-成员变量的封装及类方法
查看>>
SprintBoot 实现上传下载
查看>>
笔记:非科班出身的我,如何成为了UI设计师
查看>>
关于C#堆栈的几点说明
查看>>
我们应该去努力推动每一件有利于这个社会的一些事情
查看>>
flutte项目命令行打包
查看>>
HDU-2577 How to Type(递推,DP)(水)2017寒假集训
查看>>
SQL数据库开发知识总结:提高篇
查看>>
jsp基础语言-jsp注释
查看>>
Cocos2d-x mac下eclipse开发环境的搭建, 创建跨平台的cocos2dx项目
查看>>
Java学习 · 初识 面向对象基础一
查看>>
也谈WebKit、Gecko使用图形库
查看>>
Could not write file: C:\......\.classpath
查看>>
css里关于浏览器的前缀
查看>>
HDU - 1175 连连看 DFS (记录方向)
查看>>
重头开始学23种设计模式:单例模式
查看>>
mepg
查看>>