C 容器小結

2021-08-28 23:42:44 字數 1348 閱讀 5982

一、容器種類

1、順序容器是線性結構,順序容器中每個元素的位置與元素的值無關,只與元素新增到容器的次序有關。順序容器有:array(c++11)、vector、list、deque、forward_list(c++11)

2、關聯容器:關聯容器是非線性結構(一般使用樹結構),元素的儲存按照一定的順序儲存。關聯容器有:map、set、multimap、multiset

3、無序關聯容器:unordered_set(c++11)、unordered_map(c++11)、unordered_multiset(c++11)、unordered_multimap(c++11)

3、容器介面卡:容器介面卡本身不是一種新容器,是利用已有的容器建立的按照一定規則的資料結構,例如 stack 用 vector/deque/list 物件建立的先進後出的結構(個人理解)。容器介面卡有:stack、queue、prior_queue

二、容器的操作

三、容器的對比

容器

底層資料結構

特點

備註

順序容器

array

陣列固定大小,隨機訪問

vector

陣列動態陣列,隨機訪問

deque

首尾快速增加和刪除,支援隨機訪問

forword_list

單鏈表支援任何位置的快速插入和刪除

list

雙鏈表支援任何位置的快速插入和刪除

關聯容器

set紅黑樹

鍵唯一,已排序,搜尋、移除、和插入是對數複雜度

map紅黑樹

鍵唯一,儲存有序鍵值對,搜尋、移除、和插入是對數複雜度

無序關聯容器

unordered_set

雜湊表鍵唯一, 無序,搜尋、插入和移除擁有平均常數時間複雜度

unordered_map

雜湊表鍵唯一,無序,搜尋、插入和移除擁有平均常數時間複雜度

容器介面卡

stack

list/deque

先進後出

queue

list/deque

先進先出

priority_queue

vector和堆

四、參考資料

1、《c++ primer》

2、

C 順序容器小結

c primer 中文第四版中,第九章 容器和演算法 標準庫定義了順序容器和關聯容器。順序容器 sequential container 將單一型別元素聚集起來成為容器,然後根據位置來儲存和訪問這些元素。順序容器的元素排列次序與元素值無關,而是由元素新增到容器裡的次序決定。標準庫定義了三種順序容器型...

C 順序容器學習小結

一 c 陣列的描述 一維陣列的動態記憶體分配 int num new int len delete num 二維陣列的動態記憶體分配 1 知第二維 char num n 指向陣列的指標 num newchar m n deletenum 2 知第一維 char num m 指標的陣列 for int...

C vector容器小結

通俗的說,vector是乙個可以存放任意型別資料的動態陣列 容器中的元素嚴格按照線性順序排序,可以通過元素在序列中的位置訪問對應的元素。提供了在序列末尾快速新增 刪除元素的操作。動態分配記憶體。vector 建立乙個空vector push back x 在向量尾部新增乙個元素x pop back ...