unordered map的介紹與使用

2021-10-01 09:59:46 字數 1738 閱讀 8721

1.unordered_map是儲存鍵值對的關聯式容器,其允許通過key快速的索引到與其對應的 value。

2.在unordered_map中,鍵值通常用於惟一地標識元素,而對映值是乙個物件,其內容與此鍵關聯。鍵 和對映值的型別可能不同。

3.在內部,unordered_map沒有對按照任何特定的順序排序, 為了能在常數範圍內找到key所 對應的value,unordered_map將相同雜湊值的鍵值對放在相同的桶中。

4.unordered_map容器通過key訪問單個元素要比map快,但它通常在遍歷元素子集的範圍迭代方面效率 較低。

5.unordered_maps實現了直接訪問操作符(operator),它允許使用key作為引數直接訪問value。

6.它的迭代器至少是前向迭代器。

unordered_map內部是乙個hash_table,是由乙個大vector,vector的每個元素節點掛乙個鍊錶來實現的(就是開鏈法實現的雜湊桶)。

unordered_map的插入過程:

1.得到key值

2.通過hash函式得到hash值,即為對應的bucket索引號

3.存放key和value在bucket內。

unordered_map的查詢過程:

1.得到key值

2.通過hash函式得到hash值,即為對應的bucket索引號

3.比較buckut內元素key值是否和要查詢的key值相等,若都不相等則沒找到

4.若相等則取出相等key值對應的value。

1.unordered_map的構造

unordered_map:構造不同格式的unordered_map物件

2.unordered_map的容量

bool empty() const:檢測unordered_map是否為空

size_t size() const:獲取unordered_map的有效元素個數

3.unordered_map的迭代器

begin:返回unordered_map第乙個元素的迭代器

end:返回unordered_map最後乙個元素下乙個位置的迭代器

cbegin:返回unordered_map第乙個元素的const迭代器

cend:返回unordered_map最後乙個元素下乙個位置的const迭代器

4.unordered_map的元素訪問

operator:返回與key對應的value,沒有乙個預設值

5.unordered_map的查詢

iterator find(const k& key):返回key在雜湊桶中的位置

size_t count(const k& key):返回雜湊桶中關鍵碼為key的鍵值對的個數

6.unordered_map的修改操作

insert:向容器中插入鍵值對

erase:刪除容器中的鍵值對

void clear():清空容器中有效元素個數

void swap(unordered_map&):交換兩個容器中的元素

7.unordered_map的桶操作

size_t bucket_count()const:返回雜湊桶中桶的總個數

size_t bucket_size(size_t n)const:返回n號桶中有效元素的總個數

size_t bucket(const k& key):返回元素key所在的桶號

unordered map的介紹及使用

1 unordered map是儲存鍵值對的關聯式容器,其允許通過key快速的索引到與其對應的value 2 unordered map中,鍵值通常用於惟一的標識元素,而對映值是乙個物件,其內容與此鍵關聯,鍵和對映的型別可以不同 3 在內部,unordered map沒有對進行排序,unordere...

unordered map,雜湊結構

c 11中新增4個unordered系列關聯式容器 unordered map說明 unordered map的容量 函式宣告 功能介紹 bool empty const 檢測unordered map是否為空 size t size 獲取unordered map的有效元素個數 unordered...

unordered map和map的區別

boost unordered map,它與 stl map的區別就是,stl map是按照operator 比較判斷元素是否相同,以及比較元素的大小,然後選擇合適的位置插入到樹中。所以,如果對map進行遍歷 中序遍歷 的話,輸出的結果是有序的。順序就是按照operator 定義的大小排序。而boo...