首頁  >  問答  >  主體

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

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

阿神阿神2713 天前513

全部回覆(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
  • 取消回覆