C 中unordered map幾種按鍵查詢比較

2022-04-11 13:41:01 字數 1388 閱讀 5538

unorder_map有3種常見按鍵查值方法。

使用標頭檔案和,以及命名空間std。

第一種是按鍵訪問。如果鍵存在,則返回鍵對應的值;如果鍵不存在,則返回0;

1 #include2 #include3

4using

namespace

std;56

intmain()

1314

/*15016

117*/

利用第一種訪問方式,可以簡單地往雜湊表裡面新增元素。

1     test_map[1]++;

2 test_map[2] = test_map[2] + 1

;3 cout << test_map[0] << endl << test_map[1];4

5/*61

718可以發現上面兩種方式都可以往雜湊表中新增元素和改變元素的值,用起來比較方便。

9在進行比較的時候,不需要判斷雜湊表中鍵是否存在。

10*/

第二種是使用雜湊表成員函式count查詢,count函式計算雜湊表中要查詢鍵的個數,在雜湊表中返回的值只有0和1

即雜湊表中是否存在要查詢的鍵。

1 #include2 #include3

4using

namespace

std;56

intmain()

1516

/*17118

119020

*/

第三種方式是使用雜湊表成員函式find進行查詢,如果返回的值是雜湊表的迭代器型別。

如果等於雜湊表的末尾,則表示鍵不在雜湊表中。

如果不等於雜湊表的末尾,則可以通過iter->first來訪問要查詢的鍵,通過iter->second來訪問要查詢的鍵對應的值。

1 #include2 #include3

4using

namespace

std;56

intmain()

15else

19 cout <20 key = 1

;21 tmp =test_map.find(key);

22if (tmp ==test_map.end())

25else

29return0;

30}3132

/*33

exist key 0

34first: 0 second: 1

3536

no key 1

37*/

以上就是unordered_map的幾種按鍵查詢比較。

最近在leetcode上做題的時候,對unordered_map的查詢以及返回值有一些疑惑,所以寫了這篇部落格。

C 中unordered map的用法

c 使用unordered map include 在unordered map之前加上tr1庫名,using namespace std tr1 與此同時需要加上命名空間 查詢元素是否存在 若有unordered map mp 查詢x是否在map中 方法1 若存在 mp.find x mp.end...

C 中map和unordered map的用法

map和unordered map都是c 中可以充當字典 key value 來用的資料型別,但是其基本實現是不一樣的。對於map的底層原理,是通過紅黑樹 一種非嚴格意義上的平衡二叉樹 來實現的,因此map內部所有的資料都是有序的,map的查詢 插入 刪除操作的時間複雜度都是o logn 此外,ma...

C 中unordered map的版本相容性問題

在c 中最讓我蛋疼的事情之一就是unordered map千呼萬喚才出來,在c 早期版本標準庫裡面只有map這個字典。但是map的內部實現是採用的紅黑樹,眾所周知,對於字典這類結構也可以用hash表來實現,也就是c 的標準庫應該也要有hash map這種資料結構。在c 中關於map的hash表方法的...