map刪除鍵值對的簡單方法 雜湊的簡單實現

2021-10-13 16:00:08 字數 1005 閱讀 1093

我記得在做力扣第一題兩數之和的時候,就用到了雜湊表。

很多地方會用到雜湊表,令我印象深刻的乙個地方就是我有一次計算概率題,計算出來的值要成為索引,但當時我並不會雜湊表,就使用了陣列實現,那個給我造成了挺大的麻煩。

好吧說了這麼多,開始正題。

舉個例子,就像乙個字典,字典的每個字都有乙個編號,然後我們可以通過編號來快速尋找到字。所以有些地方雜湊表也稱為字典,甚至在python中專門乙個資料結構字典。

#include mapmap1;  // 建立乙個以數字為鍵值,字串為值得雜湊表map1.insert(pair(1, "哈哈哈"));  // 往雜湊表中插入乙個數值map1.begin()    //返回指向map頭部的迭代器map1.clear()    //刪除所有元素map1.count()    //返回指定元素出現的次數map1.empty()    //如果map為空則返回truemap1.end()      //返回指向map末尾的迭代器map1.erase()    //刪除乙個元素map1.find()      //查詢乙個元素map1.insert()    //插入元素map1.size()      //返回map中元素的個數map1.swap()      //交換兩個map
書中作者還是自己寫了一遍雜湊表,但不幸的是,與stl衝突了,與棧一樣。

但不管如何,資料結構是怎麼構成的,還是需要看一遍。

雜湊表擁有較快的檢索速度,在一些方面優於陣列與鍊錶。原因就是雜湊表的鍵值永遠是有序的,我們通過鍵值可以快速搜尋到值,陣列與鍊錶的索引雖然有序,但我們往往需要的是值而不是其索引。

雜湊表的鍵值可以是一組字串,字串是不能排序的,所以需要通過一定的計算方法來對其排序。

所以雜湊表的第一步,將鍵值轉換為非負整數。

(我突然發現雜湊這兩個字是音譯……不是很想用這個詞……英文中一般稱為hash,map,翻譯過來一般稱為雜湊,對映,還有……字典?)

然後我們用一條排序的鏈,來實現它。

我簡單畫一張圖吧。

源**我還是放在我的github

Map雜湊表鍵值對高效查詢兩數之和

題目描述 給定乙個整型陣列nums 和乙個目標值target,要求找到陣列中兩數之和為target的下標。遍歷當前nums 陣列。如果target nums i 的值不在雜湊表中,將nums 中的值和對應的下標存在雜湊表中。直到在雜湊表中找到,或者遍歷完陣列退出。步驟用nums target 10 ...

Map獲取鍵值,Map的幾種遍歷方法

map類提供了乙個稱為entryset 的方法,這個方法返回乙個map.entry例項化後的物件集。接著,map.entry類提供了乙個getkey 方法和乙個getvalue 方法,map.entry同時也提供了乙個setvalue 方法,程式設計師可以使用它修改map裡面的值。mapmap ne...

Map獲取鍵值,Map的幾種遍歷方法

map 類提供了乙個稱為entryset 的方法,這個方法返回乙個map.entry例項化後的物件集。接著,map.entry類提供了乙個 getkey 方法和乙個getvalue 方法,map.entry同時也提供了乙個setvalue 方法,程式設計師可以使用它修改map裡面的值。法一 mapm...