關聯容器的查找和插入都很快,相似於數據庫,經過key來查找value;底層經過紅黑樹和hast table來支持。數據庫
1、紅黑樹spa
一、按照key來排序設計
2、set/multisetblog
一、key即value,因此不容許修改值排序
二、將迭代器設置爲const,來阻止修改其值;hash
三、set的操做,都交給了紅黑樹來完成,更像是容器的適配器(如同stack,queue,操做都交給deque);io
3、map/multimaptable
一、插入即排序,不能夠改變key,能夠改變valueast
二、將key和value包成pair,並將key設置爲const,從而阻止修改;function
4、hashtable
一、關聯容器的另外一個分支。每一個bucket下有一個鏈表,當元素個數大於bucket數時(可能會使鏈表過長,不利於查詢),從新分配bucket:
通常二倍附近原bucket數(最接近的素數)。
二、有的hashtable須要本身設計hash function,參考以下的特化版本
5、 unordered容器
底層爲hash table