我正在编写一个解析器(用C ++),我有一小串字符串(少于100个),其中每个字符串代表一个有效的解析器标记。我需要将每个这样的已知标记映射到一个枚举值,以进行进一步处理。 由于所有字符串在编译时都是已知的,为此,我一直在考虑使用完美哈希函数。
我知道用于完善哈希函数生成的现有工具和算法。 gperf,mph,cmph。但是,所有这些工具/实现都受某种限制性许可(例如GPL,LGPL,MPL)的限制,而由于我的限制,我正在寻找一些宽松许可下的代码以供重用(例如MIT许可),最好是C / C ++或C#。 您知道任何此类工具或代码吗?
答案 0 :(得分:0)
是的,这似乎适合您的参数:
https://www.codeproject.com/Articles/989340/Practical-Perfect-Hashing-in-Csharp
请注意,它使用的是我不太熟悉的许可协议。但这看起来与GPL无关。