天天看點

背景開發:核心技術與應用實踐3.3.1 vector是什麼

<b>3.3.1  vector是什麼</b>

vector是線性容器,它的元素嚴格按照線性序列排序,和動态數組很相似。和數組類似的是,它的元素存儲在一塊連續的存儲空間中,這也意味着不僅可以使用疊代器(iterator)通路元素,還可以使用指針的偏移方式通路。和正常數組不一樣的是,vector能夠自動存儲元素,可以自動增長或縮小存儲空間。

vector的優點如下所述。

(1)可以使用下标通路個别的元素。

(2)疊代器可以按照不同的方式周遊容器。

(3)可以在容器的末尾增加或删除元素。

和數組相比,雖然容器在自動處理容量的大小時會消耗更多的記憶體,但是容器能提供和數組一樣的性能,而且能很好地調整存儲空間大小。

和其他标準的順序容器相比,vector能更有效通路容器内的元素和在末尾添加和删除元素;而在其他位置添加和删除元素,vector則不及其他順序容器,在疊代器和引用也不比lists支援的好。

容器的大小和容器的容量是有差別的,大小是指元素的個數,容量是配置設定的記憶體大小,容量一般不小于容器的大小。vector::size()傳回容器的大小,vector::capacity()傳回容量值,容量多于容器大小的部分用于以防容器大小的增加使用。每次重新配置設定記憶體都會很影響程式的性能,是以一般配置設定的容量都大于容器的大小,若要自己指定配置設定的容量的大小,則可以使用vector::reserve(),但是規定的值要大于size()值。

使用vector時需要包含的頭檔案#include&lt;vector&gt;。