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 ()之後的輸出,想看看清空之後會輸出什麼,結果還是
,不理解爲什麼。難道是清空後就不輸出嗎???