遍历中stl erase 的使用
来源:互联网 发布:vs2010mfc编程入门 编辑:程序博客网 时间:2024/05/01 17:15
vector(deque)是一个顺序容器,erase后,后面的元素自动前移,后面所有迭代器失效(地址前移)
对顺序容器的erase正确操作方法是使用erase的返回值,erase返回被删元素的下一个元素地址。
// 假设vec中只存放一个值
iterator container::erase(iterator pos)
for(; iter != vec.end(); ) // iter: 0x0a3642d8 end(): 0x0a3642dc { if(//条件为真) { iter = vec.erase(iter); // iter: 0x0a3642d8 end():0x0a3642d8 } else { ++iter; }}
对关系容器的erase可以使用使用后置++的方法进行。因为此类采用红黑树实现,插入删除一个节点不会对其它节点产生影响。
传给erase的是iter的一个副本,void erase(iterator __pos),iter++会指向下一个元素
void container::erase(iterator pos)
for(; iter != _map.end(); ){ if(//条件为真) { _map.erase(iter++); } else { ++iter; }}
对于list来说,它使用了不连续分配的内存,并且它的erase方法也会返回下一个有效的迭代器,因此,以上两种方法都可以使用。
- 遍历中stl erase 的使用
- STL中容器使用erase()遍历删除
- STL中正确使用ERASE()方法遍历删除元素
- C++ STL容器中erase的使用
- 正确的在遍历过程中使用STL容器的erase函数
- STL中erase()小心使用
- STL中erase()小心使用
- STL中erase()小心使用
- STL中erase()小心使用
- STL中erase()小心使用
- STL中erase()小心使用
- STL容器的遍历删除操作erase
- STL中容器的erase()
- stl erase 的正确使用
- STL中list的erase()方法的使用
- 注意C++ STL容器中erase的使用
- C++中防止STL中迭代器失效--erase()的使用
- STL中transform ,erase,sort,unique的使用
- android ImageView图片缩放
- [C++基础]goto的用法
- 为什么要视图集成?视图集成的方法是什么?
- CString 转 std::string
- 我记忆中的篮球场
- 遍历中stl erase 的使用
- C Programming Puzzlers
- 如何使用VC编译.C文件或者CXX文件?
- Struts2的工作机制
- 2012年回顾:100个优秀jQuery插件精选
- Android APK反编译详解
- (久违的一道题) 食物链 (P1182)
- 事务的概念及事务的四个特性。
- jquery验证,只能输入英文或者中文