关于忽略字符顺序的字符串哈希函数的建议

Suggestions regarding a string hashing function which ignores ordering of characters

我需要 c++ 中 unordered_map<string, int> 的散列函数。我需要根据内容对密钥进行哈希处理,但它不应该取决于内容的顺序。

比如我的map中key是string,需要"ac","ca"生成相同的hash值,但是"bb"应该生成不同的hash值.

我尝试总结字符串的内容,但我意识到在那种情况下,"ac" 和 "bb" 生成相同的哈希值。

有类似的问题Does a string hash exist which can ignore the order of chars in this string,但也没有得到回答。

因为a * b * c等同于a * c * b,所以可以将字符相乘而不是相加。

这也比在散列之前必须对每个字符串中的所有字符进行排序要快得多。