erase()方法可以删除vector中迭代器所指的一个元素或一段区间中所有元素。
clear()方法则一次性删除vector中所有的元素。
#include<vector>
#include<iostream>
using namespace std;
int main(int argc,char* argv[])
{
vector<int> v(10);
for(int i=0;i<10;i++)
{
v[i]=i;
}
v.erase (v.begin ()+2);//删除第2个元素(迭代器中),从0计数。所以剩下013456789
vector<int>::iterator it;
for(it=v.begin ();it!=v.end ();it++)
{
cout<<*it<<" ";
}
cout<<endl;
v.erase (v.begin ()+1,v.begin ()+5);//删除迭代器中第1到第5区间内所有元素,所以只剩06789了。
for(it=v.begin ();it!=v.end ();it++)
{
cout<<*it<<" ";
}
cout<<endl;
v.clear ();//全部删除了。
/*for(it=v.begin (); it!=v.end ();it++)
{
cout<<*it<<" ";
}*/
cout<<v.size ()<<endl;
return 0;
}
运行结果:
有一点不理解,当我把最后那部分(注释掉的)加上之后,即v.clear ()之后的输出,想看看清空之后会输出什么,结果还是
,不理解为什么。难道是清空后就不输出吗???