C 雜湊表與unordered map

2021-10-24 08:08:00 字數 730 閱讀 3105

這篇博文只是將我最近學習的一些知識點串聯起來的簡單記錄,旨在記錄大體的方向,並不是詳細的筆記。

雜湊表是什麼:雜湊表是根據關鍵碼的值而直接進行訪問的資料結構。

雜湊表用來解決什麼問題:一般雜湊表都是用來快速判斷乙個元素是否出現集合裡。

leetcode的242題:有效的字母異位詞

題目描述:

給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。

示例 1:

輸入: s = "anagram", t = "nagaram"

輸出: true

示例 2:

輸入: s = "rat", t = "car"

輸出: false

說明:你可以假設字串只包含小寫字母。

具體的分析可以去看leetcode上面的優質解答,那上面的最高贊,或者關注的人比較多的答案基本都是很優秀的解答和分析。這個問題的解法其中乙個就是使用了unordered_map進行解決的:

class solution 

unordered_mapumap;

for (int i = 0; i < s.size(); ++i)

for (auto ch : umap)

}return true;

}};

關於unordered_map的內部函式,可以查閱:上面的介紹都是非常詳盡了。

雜湊表與雜湊函式 C實現

雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中 乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。給定表m,存在函式f key 對任意給定的關鍵字值key,代入函式後...

雜湊表(雜湊表) C 實現

雜湊函式就是 關鍵字key 到 值value 的對映 value f key value反映的是關鍵字key的儲存位址。直接定址法 f key a key b 例如存放不同出生年份的人口數量,出生年份是關鍵字,那麼可以用直接定址法。直接定址法的優點是簡單均勻,也不會產生衝突 缺點是該方法適合表比較小...

雜湊表與雜湊函式

雜湊表 我們將任意型別元素轉換為整型的過程叫作雜湊。所謂雜湊,實質上是高維空間向低維空間的對映。高維度空間元素數量多,低維空間元素數量少,必定會出現多對一的對映,所以必然出現雜湊衝突。在設計雜湊函式的過程要針對狀態數來進行分析。雜湊函式的本質在做雜湊,處理雜湊碰撞。設計雜湊表應當注重以下兩點 設計雜...