(四)容器探索 關聯容器

2021-09-25 11:16:04 字數 1070 閱讀 1616

關聯容器的查詢和插入都很快,類似於資料庫,通過key來查詢value;底層通過紅黑樹和hast table來支援。

一、紅黑樹

1、按照key來排序

二、set/multiset

1、key即value,所以不允許修改值

2、將迭代器設定為const,來阻止修改其值;

3、set的操作,都交給了紅黑樹來完成,更像是容器的介面卡(如同stack,queue,操作都交給deque);

三、map/multimap

1、插入即排序,不可以改變key,可以改變value

2、將key和value包成pair,並將key設定為const,從而阻止修改;

四、hashtable

1、關聯容器的另乙個分支。每個bucket下有乙個鍊錶,當元素個數大於bucket數時(可能會使鍊錶過長,不利於查詢),重新分配bucket:

一般二倍附近原bucket數(最接近的素數)。

2、有的hashtable需要自己設計hash function,參考如下的特化版本

五、 unordered容器

底層為hash table

容器 順序容器 關聯容器

容器分為 順序容器 關聯容器,示意圖如下 順序容器 只儲存值,關聯容器 key value形式,關聯容器的乙個元素包含兩個部分 鍵值對 key value 有序容器 底層實現為紅黑樹,即容器內的key是有序的 無序容器 底層實現為hash table,雜湊表 區別 順序容器通過元素在容器中的位置順序...

STL學習 四 關聯容器

一 簡介 二 操作 排序順序 預設為從小到大 加上仿函式greater之後為從大到小 2.插入只提供insert函式 3.屬性 size 沒有capacity 因為本質和鍊錶類似 迭代器也只能 操作 4.刪除 earse 和clear 5.查詢 可以重複的set集合,其他和set類似 一 簡介 鍵值...

map容器即關聯容器

include string include map using namespace std intmain 資料 1.對映和多重對映以容器以鍵 值對 pair物件 的形式管理他們的元素,其元素按照 某種標準對鍵進行排列,預設標準為 排序時比較pair物件的資料成員first的值.相等則比較seco...