本文共 596 字,大约阅读时间需要 1 分钟。
vector的erase函数,记住该函数会使迭代器失效,返回下一个迭代器。 #include "stdafx.h" #include<iostream> #include<string> #include<vector> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { vector<int> iVec; vector<int>::iterator it; int i; for( i=0;i<10;i++) iVec.push_back(i); for( i=0;i<iVec.size();i++) cout<<iVec[i]<<ends; cout<<endl; for(it=iVec.begin();it!=iVec.end();++it) { int h=*it; if(h ==4 || h == 5) { it=iVec.erase(it);//此时it指向5 it--; //这里--是有用意的,否则删不了5的 } } for( i=0;i<iVec.size();i++) cout<<iVec[i]<<ends; cout<<endl; system("pause"); return 0; } 转载于:https://www.cnblogs.com/lulululu/p/3693873.html