vector向量容器的刪除

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 ()之後的輸出,想看看清空之後會輸出什麼,結果還是

,不理解爲什麼。難道是清空後就不輸出嗎???

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章