1.stl容器分類:
stl的容器可以分為以下幾個大類:
一 順序(序列)容器, 有vector, list, deque, string,stack( 介面卡類), queue( 介面卡類), priority queues( 介面卡類)
二 關聯容器, 有set, multiset, map, multimap, bitset,hash_set, hash_map, hash_multiset, hash_multimap
2.容器比較
vector
deque
list
setmultiset
mapmultimap
名稱向量容器
雙向佇列容器
列表容器
集合多重集合
對映多重對映
內部資料結構
連續儲存的陣列形式(一端開口的組)
連續或分段連續儲存陣列(兩端
開口的陣列)
雙向環狀鍊錶
紅黑樹(平衡檢索二叉樹)
紅黑樹紅黑樹
紅黑樹標頭檔案
#include
#include
#include
#include
#include
#include
#include
操作元素的方式
下標運算子:[0](可以用迭代器,但插入刪除操作時會失效)
下標運算子或迭代器
只能用迭代器(不斷用變數值來遞推新值,相當於指標),不支援使用下標運算子
迭代器迭代器
迭代器迭代器
插入刪除操作迭代器是否失效
插入和刪除元素都會使迭代器失效
插入任何元素都會使迭代器失效。刪除頭和尾元素,指向被刪除節點迭代器失效,而刪除中間元素會使所有迭代器失效
插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效
插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效
插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效
插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效
插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效
3.各容器特點比較以及選擇
vector
deque
list
setmultiset
mapmultimap
名稱向量容器
雙向佇列容器
列表容器
集合多重集合
對映多重對映
特點增加和獲取元素效率
很高,插入和刪除的
效率很低
增加和獲取元素效率
較高,插入和刪除的
效率較高
增加和獲取元素效率
很低,插入和刪除的
效率很高
1.鍵(關鍵字)和值(資料)相等(就是模版只有乙個引數,鍵和值合起來)
2.鍵唯一
3.元素預設按公升序排列
1.鍵和值相等
2.鍵可以不唯一
3.元素預設按公升序排列
1.鍵和值分開(模版有兩個引數,前面是鍵後面是值)
2.鍵唯一
3.元素預設按鍵的公升序排列
1.鍵和值分開
2.鍵可以不唯一
3.元素預設按鍵的公升序排列
定義容器
vectorbook(50);
dequebook(50);
listbook;
setbook;
multisetbook;
mapbook;
multimapbook;
4.各容器的圖表說明
深入解析C STL中的常用容器
這裡我們不涉及容器的基本操作之類,只是要討論一下各個容器其各自的特點。stl中的常用容器包括 順序性容器 vector deque list 關聯容器 map set 容器介面卡 queue stac stl是c c 開發中乙個非常重要的模板,而其中定義的各種容器也是非常方便我們大家使用。下面,我們...
深入解析C STL中的常用容器
這裡我們不涉及容器的基本操作之類,只是要討論一下各個容器其各自的特點。stl中的常用容器包括 順序性容器 vector deque list 關聯容器 map set 容器介面卡 queue stac stl是c c 開發中乙個非常重要的模板,而其中定義的各種容器也是非常方便我們大家使用。下面,我們...
深入解析C STL中的常用容器
這裡我們不涉及容器的基本操作之類,只是要討論一下各個容器其各自的特點。stl中的常用容器包括 順序性容器 vector deque list 關聯容器 map set 容器介面卡 queue stac stl是c c 開發中乙個非常重要的模板,而其中定義的各種容器也是非常方便我們大家使用。下面,我們...