首页 > 代码库 > std中vector和list容器遍历时元素的动态删除
std中vector和list容器遍历时元素的动态删除
问题描述如下:
在容器遍历过程中怎样动态地删除满足条件的元素,而不影响容器本次的遍历过程
代码:
#include "stdafx.h" #include <list> #include <vector> #include <iostream> using namespace std; void main() { list<int> l; for(int i=0;i<10;i++) //存储1~10的元素值 { l.push_back(i+1); } list<int>::iterator it=l.begin(); while(it!=l.end()) { list<int>::iterator lsave; if(*it%2==0) //删除偶数元素 { lsave=it; it++; l.erase(lsave); } else { it++; } } it=l.begin(); while(it!=l.end()) //遍历该list { cout<<*it<<" "; it++; } //********************************** cout<<endl<<"*******************"<<endl; vector<int> vec; for(int i=0;i<10;i++) { vec.push_back(i+1); } vector<int>::iterator it1=vec.begin(); for(int i=0;i<vec.size();i++) { if(vec[i]%3==0) { vec.erase(i+it1); } } it1=vec.begin(); while(it1!=vec.end()) { cout<<*it1<<" "; it1++; } cout<<endl; system("pause"); }
std中vector和list容器遍历时元素的动态删除
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。