容器遍历删除特定条件元素应注意迭代器的增加方式
来源:互联网 发布:paragon ntfs mac 15 编辑:程序博客网 时间:2024/05/22 14:27
1.首先要确定该容器删除操作后返回的迭代器指向哪个元素
2.是否返回迭代器
在vector容器中
c.erase(p)
Removes element referred to by the iterator p.
删除迭代器 p 所指向的元素
Returns an iterator referring to the element after the one deleted, or an off-the-end iterator ifp referred to the last element. Undefined if p is an off-the-end iterator.
返回一个迭代器,它指向被删除元素后面的元素。如果 p 指向容器内的最后一个元素,则返回的迭代器指向容器的超出末端的下一位置。如果p 本身就是指向超出末端的下一位置的迭代器,则该函数未定义
c.erase(b,e)
Removes the range of elements denoted by the iterators b ande.
删除迭代器 b 和 e 所标记的范围内所有的元素
Returns an iterator referring after the last one in the range that was deleted, or an off-the-end iterator ife is itself an off-the-end iterator.
返回一个迭代器,它指向被删除元素段后面的元素。如果 e 本身就是指向超出末端的下一位置的迭代器,则返回的迭代器也指向容器的超出末端的下一位置
所以在循环中,如果删除了元素,就无需添加自增,如果没有,就要++
std::vector<Vec3f>::iterator itc = circles.begin();while(itc != circles.end()){//std::cout<<".";if(OverLine(*itc,image.size().width,image.size().height,10)){itc=circles.erase(itc);}else{itc++;}}
- 容器遍历删除特定条件元素应注意迭代器的增加方式
- STL容器元素应满足的条件
- stl容器在循环遍历中删除元素的方式
- 删除容器的元素时应谨慎
- 删除容器的元素时应谨慎
- 测试对Vector容器,遍历元素删除满足条件元素,而进行Erase()操作的效率
- Effective STL--不同容器删除特定元素的方法
- 关于STL容器中vector特定元素的删除问题
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map 通过遍历删除满足某些条件元素的两种方式
- 编程技巧系列(2)Java 集合(List,Set,Map)遍历时有条件删除特定元素
- stl容器遍历删除元素
- list遍历的时候,删除某个符合条件的元素
- list遍历的时候,删除某个符合条件的元素
- STL容器:在遍历的过程中删除元素
- map容器(元素的添加/遍历/删除)
- C++ STL容器遍历删除元素的方法
- 第36天的交易(2013-5-9)(-100)(-198)
- Matlab的libsvm的安装过程
- Java给Main函数传递参数
- 局部特征(6)——局部特征描述汇总
- MySQL配置文件my.cnf中文版
- 容器遍历删除特定条件元素应注意迭代器的增加方式
- 2013第十一周上机任务【项目1 三角形类 直线类】
- Android在程序中动态生成控件,动态布局
- Informix 删除表的前n条数据[推荐]
- pb12 开发 webservice 注意事项
- Log4j的一些常用配置
- css常见兼容性问题
- MFC对话框border设置成none,点击任务栏不能最小化问题
- 第11周上机实践阅读程序2