搜尋

首頁  >  問答  >  主體

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

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

阿神阿神2804 天前572

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