参考博客http://mashuai.blog.51cto.com/700343/267718
关于 vector erase 用法的探索,一看就明;
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iostream>
using namespace std;
int display(vector<int> ivec)
{
for(vector<int>::iterator it = ivec.begin(); it != ivec.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void fun()
{
vector<int> iVec;
vector<int>::iterator it;
for(int i=0;i<10;i++)
iVec.push_back(i);
cout<<"before erase :"<<endl;
display(iVec);
for(it=iVec.begin();it!=iVec.end();++it)
{
if(*it ==4 || *it == 7)
{
cout<<"before erase : it refers to"<<*it<<endl;
it=iVec.erase(it);
cout<<"erase one elements , it refer to"<<*it<<endl;
--it;//这里回退一个
}
}
cout<<"after erase :"<<endl;
display(iVec);
}
int main()
{
fun();
return 0;
}