vector模板,初學者必讀

2021-10-18 21:14:08 字數 1468 閱讀 2318

vector 稱為向量,是一種類模板,其宣告包含在標頭檔案< vector>中,所以使用veto 時需要包含標頭檔案< vector> 。

vector是一種支援高效地隨機訪問和高效地向尾部插入新元素的容器,它一般實現為一 個動態分配的陣列,所以在程式開發過程中,使用vector作為動態陣列是非常方便的

類 似於陣列, vector分配連續的儲存空間儲存資料,個相鄰資料在儲存空間上是相鄰的。所 以, vector可以像陣列一樣實現隨機訪問。

與陣列不同的是, vector具有自動擴充套件容器大小 的功能,當 vector物件的儲存空間不夠時, vector物件會動使用new運算子申請一塊更 大的記憶體空間,使用賦值運算子將原有的資料複製到新儲存空間,並釋放原有儲存空間。在 具體實現記憶體空間的擴充套件時,擴充套件的記憶體空間一般會大於所需的記憶體空間。

另外,當刪除 vector物件中的乙個元素時,多出的閒置儲存空間並不會馬上被釋放。因此, vector容器對 象已分配的空間所能容納的元素個數(稱為容量, capacity)):通常會大於容器中實際儲存的 元素個數(稱為大小,size)。

*** vector中的元素在記憶體空間上是相鄰的***。當在某個位置插入或刪除乙個元素時,從這 個位置開始的、其後的所有元素都需要向後或向前移動乙個位置。顯然,這個位置越靠前, 需要移動的元素就越多,移動元素所花費的時間就越長,這種插入或刪除操作的效率就越 低。在尾部新增或刪除元素的時間是常數時間,但在頭部插入或刪除元素時是線性時間復 雜度。

因此, vector比較適合於儲存相對固定、更新次數少的資料,或者只在尾部新增或者 刪除元素。

## 1.宣告vector物件

使用vector宣告物件時需要為物件指定資料型別,用具體型別例項化模版類,然後例項化外物件,例如:

vectorv1;//建立空物件 儲存int資料型別,v1中沒有任何值

//對v1元素訪問是非法的

vectorv2(3);//建立容量大小為5的int型別向量

//初始值都為0

vectorv3;

vectorv4(3, "ab");//建立容量大小為3的string型別向量,三個元素初始值

//都為ab;

返回容器的容量。

2.resize(n)

修改容器容量為n。

3.size()

返回容器中元素的個數。

4.begin()

返回容器的初始迭代器。

5.end()

返回最後乙個元素後面位置的迭代器。

6.assign(n,val)

把n個val為向量複製。

XML初學者必讀

差不多每天都有人問 什麼是 xml xml 能做什麼 xml 能不能替我做這個 xml 會取代什麼 等等諸如此類的問題。由於最近一段時間稍微對 xml 使用了一下,我來談談自己的感覺。這些經驗都很淺顯,任何乙個用過 xml 的人都有,並且見仁見智,只不過我算剛剛走過這段路,對自己一開始的困惑,誤解還...

XML初學者必讀

差不多每天都有人問 什麼是 xml xml 能做什麼 xml 能不能替我做這個 xml 會取代什麼 等等諸如此類的問題。由於最近一段時間稍微對 xml 使用了一下,我來談談自己的感覺。這些經驗都很淺顯,任何乙個用過 xml 的人都有,並且見仁見智,只不過我算剛剛走過這段路,對自己一開始的困惑,誤解還...

初學者談初學者學html

這是乙個段落。解釋一下就是 html 與 html 之間的文字是描述網頁。head 與 head 之間的文字是文件的元資料。title 與 之間的文字是文件的標題。body 與 body 之間的文字是可見的頁面內容,是文章的主體部分。h1 與 h1 之間的文字被顯示為乙個大標題。p 與 p 之間的文...