分為順序容器和關聯容器。
順序容器包括
1、vector
內部資料結構:陣列,可隨機訪問元素,在末尾增加或刪除元素與元素數目無關,在其
他部分增加或刪除元素隨著元素數目呈線性變化。可通過reserve提前分配足夠的記憶體。
2、deque
雙端佇列,按頁/塊來分配儲存,每頁/塊包含固定的數目的元素。支援隨機訪問,在首、尾插入
元素效率與元素數目無關,在中間插入或刪除與元素數目呈線性關係。
3、list
雙向鍊錶,不能隨機訪問乙個元素,可雙向遍歷,在任意位置插入、刪除所需時間都為常量。
因此適合頻繁的插入或刪除。
4、forward_list
單向鍊錶,單向順序訪問。
5、array
固定大小陣列,支援隨機訪問,不能新增或刪除元素。
6、string
與vector類似,專門用於保持字元,在尾部插入/刪除快。
關聯容器包括兩種
(1)按關鍵字有序儲存元素
1、map
元素關鍵字的公升序排列。
2、set
關鍵字即值
3、multimap
關鍵字可重複出現的map
4、multiset
關鍵字可重複出現的set
(2)無序集合
1、unordered_map
用雜湊函式組織的map
2、unordered_set
用雜湊函式組織的set
3、unordered_multimap
4、unordered_multiset
更多參考:
C 各種容器特點總結
1 vector 內部資料結構 陣列。隨機訪問每個元素,所需要的時間為常量。在末尾增加或刪除元素所需時間與元素數目無關,在中間或開頭增加或刪除元素所需時間隨元素數目呈線性變化。可動態增加或減少元素,記憶體管理自動完成,但程式設計師可以使用reserve 成員函式來管理記憶體。vector的迭代器在記...
總結各種容器特點
1 vector 內部資料結構 陣列。隨機訪問每個元素,所需要的時間為常量。在末尾增加或刪除元素所需時間與元素數目無關,在中間或開頭增加或刪除元素所需時間隨元素數目呈線性變化。可動態增加或減少元素,記憶體管理自動完成,但程式設計師可以使用reserve 成員函式來管理記憶體。vector的迭代器在記...
C 各種容器特點總結 容器的選擇問題
1 vector 內部資料結構 陣列。隨機訪問每個元素,所需要的時間為常量。在末尾增加或刪除元素所需時間與元素數目無關,在中間或開頭增加或刪除元素所需時間隨元素數目呈線性變化。可動態增加或減少元素,記憶體管理自動完成,但程式設計師可以使用reserve 成員函式來管理記憶體。vector的迭代器在記...