首页  >  问答  >  正文

hashmap - 在C++中,如何对中文的字符串做哈希映射,使得所产生的冲突尽可能的少?

都是一些十个汉字以内的字符串,如何设置哈希函数呢?

阿神阿神2767 天前550

全部回复(2)我来回复

  • 高洛峰

    高洛峰2017-04-17 11:26:36

    个人推荐两篇文章:
    https://www.byvoid.com/blog/string-hash-compare
    http://blog.csdn.net/icefireelf/article/details/5796529
    你把一个汉字(宽字符)当成若干个 ASCII 字符,套用这些算法,可以吗?

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:26:36

    十个汉字,如果用GB2312编码就是20个字节,你直接用这20个字节做“Hash value”就没有冲突了。
    话说SHA1的长度也是160bit,就是20个字节,SHA512就更长了,还不如不用

    回复
    0
  • 取消回复