我需要在C++中使用unordered_map<string, int>
的散列函數。我需要根據內容對密鑰進行散列處理,但不應取決於內容的順序。關於忽略字符排序的字符串散列函數的建議
例如,在我的地圖中,鍵是字符串,我需要「ac」,「ca」來生成相同的散列值,但「bb」應該生成不同的散列值。
我試着總結字符串的內容,但我意識到在這種情況下,「ac」和「bb」會生成相同的散列值。
還有類似的問題Does a string hash exist which can ignore the order of chars in this string,但那還沒有被回答。
在對它們進行散列操作之前對它們進行排序。這意味着你對'ac'和'ca'都加上'ac',這樣它們就可以根據需要哈希到相同的值,但'bb'(大概)會散列到不同的值。 – 2015-03-08 21:15:17
^他打算說「排序字符串中的字符」。 – 2015-03-08 21:20:20
是的。排序他們現在工作。但是如果有一個線性時間散列函數而沒有任何額外的內存來完成這個任務,那將會很棒 – Anoop 2015-03-08 21:23:46