(四)容器探索:關聯容器

關聯容器的查找和插入都很快,相似於數據庫,經過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

相關文章
相關標籤/搜索