STL容器迭代删除元素
2014-10-15 01:07
197 查看
对于顺序存储的容器和链接存储的容器是不同的,它们的不同之处在于顺序容器删除结点后迭代器会自动移到下一个结点,而链接存储的结点就不会,需要手动移动。链接存储的结点会包含指向下一个结点或上一个结点的指针通过重载迭代器的++操作符实现移动迭代器。删除后,迭代器指示的当前结点变为无效,需要通过前后结点帮助继续完成遍历。
#include <iostream> #include <vector> #include <list> using namespace std; int main(){ vector<int> v; list<int> l; for(int i=0;i<10;i++) { v.push_back(i); l.push_back(i); } for(auto p=v.begin();p!=v.end();p++){ if(*p%3==0){ v.erase(p); p--; } } for(auto p=l.begin();p!=l.end();p++) { if(*p%3==0){ l.erase(p++); p--; } } cout<<"vector:"<<endl; for(auto p=v.begin();p!=v.end();p++){ cout<<*p<<endl; } cout<<"list:"<<endl; for(auto p=l.begin();p!=l.end();p++) { cout<<*p<<endl; } return 0; }对于java 就轻松的多,在用迭代器遍历时,直接使用迭代器的 remove() 方法。
相关文章推荐
- STL容器迭代过程中删除元素技巧
- STL容器迭代过程中删除元素技巧(转)
- STL容器迭代过程中删除元素技巧(转)
- STL容器迭代过程中删除元素技巧(转)
- STL容器迭代过程中删除元素技巧
- STL容器迭代过程中删除元素技巧(转)
- STL容器迭代过程中删除元素技巧(转)
- Effective STL-各种容器正确删除元素方法
- STL:循环删除容器中元素的方法和陷阱
- STL序列式容器中删除元素的方法和陷阱 一
- STL 删除容器中元素的几个特殊问题
- 怎样删除STL容器中的元素
- STL之容器:选择时机,删除元素,迭代器失效
- STL关联式容器中删除元素的方法和陷阱四
- stl容器在循环遍历中删除元素的方式
- STL序列式容器中删除元素的方法和陷阱 二
- 转载: STL序列式容器中删除元素的方法和陷阱一 .
- STL之容器:选择时机,删除元素,迭代器失效
- 删除STL容器元素的方法
- STL关联式容器中删除元素的方法和陷阱