1.vector
底層資料結構為陣列 ,支援快速隨機訪問
vector開始建立的時候長度為0,當插入後陣列大小大於capacity,重開乙個1.5倍大小的。重開1.5倍大小要優於2倍, 因為記憶體的復用性更強。重開陣列倍數不同
2.list
底層資料結構為雙向鍊錶,支援快速增刪
list底層實現
3.deque
底層資料結構為乙個**控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾(中間不能)快速增刪,也支援隨機訪問
deque是乙個雙端佇列(double-ended queue),也是在堆中儲存內容的.它的儲存形式如下:
[堆1] --> [堆2] -->[堆3] --> …
每個堆儲存好幾個元素,然後堆和堆之間有指標指向,看起來像是list和vector的結合品.
4.stack
底層一般用list或deque實現,封閉頭部即可,不用vector的原因應該是容量大小有限制,擴容耗時
5.queue
底層一般用list或deque實現,封閉頭部即可,不用vector的原因應該是容量大小有限制,擴容耗時
(stack和queue其實是介面卡,而不叫容器,因為是對容器的再封裝)
6.priority_queue
底層資料結構一般為vector為底層容器,堆heap為處理規則來管理底層容器實現
7.set
底層資料結構為紅黑樹,有序,不重複
8.multiset
底層資料結構為紅黑樹,有序,可重複
9.map
底層資料結構為紅黑樹,有序,不重複
10.multimap
底層資料結構為紅黑樹,有序,可重複
11.hash_set
底層資料結構為hash表,無序,不重複
12.hash_multiset
底層資料結構為hash表,無序,可重複
13.hash_map
底層資料結構為hash表,無序,不重複
14.hash_multimap
底層資料結構為hash表,無序,可重複
STL底層資料結構實現
c stl 的實現 1.vector 底層資料結構為陣列 支援快速隨機訪問 2.list 底層資料結構為雙向鍊錶,支援快速增刪 3.deque 底層資料結構為乙個 控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾 中間不能 快速增刪,也支援隨機訪問 deque是乙個雙端佇列 double...
STL底層資料結構實現總結
1.vector 底層資料結構為陣列 支援快速隨機訪問 2.list 底層資料結構為雙向鍊錶,支援快速增刪 3.deque 底層資料結構為乙個 控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾 中間不能 快 速增刪,也支援隨機訪問 deque是乙個雙端佇列 double ended qu...
STL實現的底層資料結構簡介
c stl 的實現 1.vector 底層資料結構為陣列 支援快速隨機訪問 2.list 底層資料結構為雙向鍊錶,支援快速增刪 3.deque 底層資料結構為乙個 控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾 中間不能 快速增刪,也支援隨機訪問 4.stack 底層一般用23實現,封...