STL源碼剖析之Vector容器【2013.11.15】

歡迎加入我們的QQ羣,無論你是否工作,學生,只要有c / vc / c++ 編程經驗,就來吧!158427611 【IT】C/C++/STL/Linux/W


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 【IT】C/C++/STL/Linux/W


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章