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...