歡迎加入我們的QQ羣,無論你是否工作,學生,只要有c
/ vc / c++ 編程經驗,就來吧!158427611
STL源碼剖析之Vector容器【2013.11.15】
容器在STL中是和使用者聯繫最多的。
Vector容器,沒什麼很多需要注意的。
STL中vector的結構主要成員如下:
start爲頭部迭代器,作爲隨機訪問的基數。[n] = start + n
finish爲數據尾部迭代器,有效元素的尾部,用來計算,size = finish - start
end_of_storage爲容器尾部迭代器,可以計算容器最大容量,capacity = end_of_storage - start
【1】Vector是可變長的序列容器,在內存中佔用連續內存。
【2】Vector在增加的元素的時候,會根據容器容量是否足夠來重新申請更大的內存塊來支持數據量。容量不等於Vector的size。容量 >= size 當容量等於size的是,再插入元素,Vector就會重新申請一塊內存,容量大約爲容器size的兩倍。size以外的空間用作備用空間,用以節省插入時效。
【3】Vector在插入或者刪除等,對容器數據分佈有改動的時候,將會使迭代器失效。如插入的時候,會使插入點以後的迭代器失效,刪除也是一樣。
【4】因爲Vector是需要保持連續性的容器,所以,在對Vector進行插入和刪除的時候,需要對應的移動插入點(刪除點)後的所有元素,所以在效率上面是比較大的消耗。
........................
歡迎加入我們的QQ羣,無論你是否工作,學生,只要有c
/ vc / c++ 編程經驗,就來吧!158427611