如何在有限范围内的c ++中生成字符串的哈希码?

时间:2019-01-28 09:11:28

标签: c++ c++11 visual-c++ c++14

我的配置文件上有100个值。 每个值都是由2个字符组成,可以是90或AA或04或TR或FE

我想生成每个值的哈希码-并将它们存储在包含100个元素的数组中,并且配置中的每个值都将保存在数组的哈希码索引中。

问题:

如何从2个字符(哈希码限制在0到99之间)中创建哈希码

1 个答案:

答案 0 :(得分:2)

在特定情况下(将固定的2字节序列集映射到连续数字)所需要的称为perfect hashing

虽然您可以自己实现,但有一个名为gperf的开源工具可以为您生成代码:

  

有一些选项可用于生成C或C ++代码,发出switch语句或嵌套的ifs(而不是哈希表)以及调整gperf使用的算法。