STL底層資料結構實現總結

2021-07-29 19:37:54 字數 1900 閱讀 8843

1.vector  

底層資料結構為陣列 ,支援快速隨機訪問

2.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各容器底層資料結構總結

看了 stl原始碼剖析 對於裡面的容器,下面進行了簡單的總結。底層使用陣列儲存。push back時若已經滿了,則會2 n擴充套件空間,若實際元素數量低於分配空間的1 4,則會將空間 為原來的一半。stl原始碼剖析 裡面沒有講到空間的 是之前查詢資料時看到。調整空間時,是先申請新的空間,然後將舊空間...

STL實現的底層資料結構簡介

c stl 的實現 1.vector 底層資料結構為陣列 支援快速隨機訪問 2.list 底層資料結構為雙向鍊錶,支援快速增刪 3.deque 底層資料結構為乙個 控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾 中間不能 快速增刪,也支援隨機訪問 4.stack 底層一般用23實現,封...