包含13個模板類
、、、、、、、
、、、、和關聯式容器:容器內的元素按照一定的規則放到適當的位置,插入元素時不能指定位置
序列式容器:元素在容器中的位置與元素值無關,插入元素時可以指定在容器中插入的位置
容器介面卡:不支援任意一種迭代器
set(集合)–關聯式容器由節點組成的紅黑樹(元素有序且唯一)
集合:鍵是唯一的,值的型別必須與鍵相同
特點:查詢的速度特別快(時間複雜度logn)
multiset(多重集合)–關聯式容器允許有重複的元素
多重集合:可以有多個相同的鍵
特點:和set一樣查詢速度快(時間複雜度logn)
map(對映)–關聯式容器由鍵值對組成的集合(元素按照key雜湊組成紅黑樹)
對映:鍵不允許重複
特點:查詢的時間複雜度(logn)
multimap(多重對映)–關聯式容器和map一樣,區別是可以有相同的鍵
list(列表)–序列式容器雙向鍊錶(記憶體不連續)
列表:可以在任意位置插入,刪除
特點:時間複雜度為(n)
vector(向量)–序列式容器可變大小陣列(元素儲存在一段連續的記憶體)
向量:唯一可以和標準c相容的stl容器
特點:可以隨機訪問,時間複雜度(n)
dqueue(雙向佇列)–序列式容器記憶體連續,可以隨機訪問元素
雙向佇列:在序列頭部插入,刪除時間複雜度(n)
stack(棧)–容器介面卡stack:是用vector/deque/list物件建立了乙個先進後出容器
queue(佇列)–容器介面卡queue:是用deque或list物件建立了乙個先進先出容器
動態的分段連續空間組合而成,可以方便的擴充大小
操作:僅允許隊尾和隊首的操作
priority_queue(優先佇列)–容器介面卡priority_queue:是用vector/deque建立了乙個排序佇列,內部用二叉堆實現
集合容器對比
vector和list vector 在記憶體中是連續儲存的,對於隨機訪問的效率較高 對於插入和刪除,由於需要複製元素,開銷較大 list在記憶體中是離散儲存的,對於隨機訪問需要遍歷,效率較低而對於插入刪除效率較高 list執行緒不安全,vector是執行緒安全的 arraylist和linkedl...
C 容器對比
型別 vector list deque maphash map set簡介 vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說vector是乙個能夠存放任意...
STL常用容器對比
stl的常用容器大致有以下8個 vector是一種動態陣列,在記憶體中具有連續的儲存空間,支援快速隨機訪問。由於具有連續的儲存空間,所以在插入和刪除操作方面,效率比較慢。vector有多個建構函式,預設的建構函式是構造乙個初始長度為0的記憶體空間,且分配的記憶體空間是以2的倍數動態增長的,在push...