C 中各種容器特點總結

2022-03-16 17:42:42 字數 815 閱讀 8796

分為順序容器和關聯容器。

順序容器包括

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的迭代器在記...