【发布时间】:2018-10-31 05:28:24
【问题描述】:
我正在编写一个解析器(在 C++ 中),我有一个小字符串列表(少于 100 个),其中每个字符串都代表一个有效的解析器标记。我需要将每个这样的已知标签映射到一个枚举值以进行进一步处理。 由于所有字符串在编译时都是已知的,因此我一直在考虑使用 完美哈希函数 来实现此目的。
我知道用于完美哈希函数生成 s.a. 的现有工具和算法。 gperf、mph、cmph。然而,所有这些工具/实现都在一些限制性许可(如 GPL、LGPL、MPL)下,而由于我的限制,我正在寻找一些代码,这些代码是在宽松的重用许可(如 MIT 许可)下,最好在C/C++ 或 C#。 你知道任何这样的工具或代码吗?
【问题讨论】:
-
搜索最小完美哈希实现会返回 stevehanov.ca/blog/index.php?id=119 等。它在 python 中,但应该很容易转换为任何类似 C 的语言。
-
这个问题的答案(代码和链接)可能会有所帮助:stackoverflow.com/questions/55824130/…
标签: hash generator hash-function perfect-hash