vector模板,初学者必读
vector
vector 稱為向量,是一種類模板,其聲明包含在頭文件< vector>中,所以使用veto 時需要包含頭文件< vector> 。
vector是一種支持高效地隨機訪問和高效地向尾部插入新元素的容器,它一般實現為一 個動態分配的數組,所以在程序開發過程中,使用vector作為動態數組是非常方便的
類 似于數組, vector分配連續的存儲空間存儲數據,個相鄰數據在存儲空間上是相鄰的。所 以, vector可以像數組一樣實現隨機訪問。
與數組不同的是, vector具有自動擴展容器大小 的功能,當 vector對象的存儲空間不夠時, vector對象會動使用new運算符申請一塊更 大的內存空間,使用賦值運算符將原有的數據復制到新存儲空間,并釋放原有存儲空間。在 具體實現內存空間的擴展時,擴展的內存空間一般會大于所需的內存空間。
另外,當刪除 vector對象中的一個元素時,多出的閑置存儲空間并不會馬上被釋放。因此, vector容器對 象已分配的空間所能容納的元素個數(稱為容量, Capacity)):通常會大于容器中實際存儲的 元素個數(稱為大小,Size)。
*** vector中的元素在內存空間上是相鄰的***。當在某個位置插入或刪除一個元素時,從這 個位置開始的、其后的所有元素都需要向后或向前移動一個位置。顯然,這個位置越靠前, 需要移動的元素就越多,移動元素所花費的時間就越長,這種插入或刪除操作的效率就越 低。在尾部添加或刪除元素的時間是常數時間,但在頭部插入或刪除元素時是線性時間復 雜度。
因此, vector比較適合于存儲相對固定、更新次數少的數據,或者只在尾部添加或者 刪除元素。
## 1.聲明vector對象
使用vector聲明對象時需要為對象指定數據類型,用具體類型實例化模版類,然后實例化外對象,例如:
vector 成員函數
1.capacity()
返回容器的容量。
2.resize(N)
修改容器容量為N。
3.size()
返回容器中元素的個數。
4.begin()
返回容器的初始迭代器。
5.end()
返回最后一個元素后面位置的迭代器。
6.assign(n,val)
把n個val為向量復制。
總結
以上是生活随笔為你收集整理的vector模板,初学者必读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++中函数模板的显示具体化
- 下一篇: c++中用于字符输入的函数