vector的remove和erase区别,附代码演示
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void show(int i){
cout<<i;
}
int main(){
vector<int> v(12,1);
v.push_back(2);
v.push_back(2);
v.push_back(2);
v.push_back(2);
v.push_back(3);
for_each(v.begin(),v.end(),show);
cout<<endl;
vector<int>::iterator it = remove(v.begin(),v.end(),2);//返回移动后的第一个元素迭代器,remove只是将3移动到了第一个2上面,而且移动只是复制,不是挪移
for_each(it-13,v.end(),show);
cout<<endl;
v.erase(it,v.end()); //删除it到end的元素,改变大小
for_each(v.begin(),v.end(),show);
cout<<endl;
getchar();
return 0;
}