【发布时间】:2010-10-18 14:20:53
【问题描述】:
感兴趣的领域是字符串匹配。假设我有这样的结构。
typedef struct
{
char *name,
int (*function)();
} StringArray
StringArray s[] =
{
{"George", func1},
{"Paul", func2},
{"Ringo", func3},
{"John", func4},
{"", NULL} /* End of list */
}
数组中有固定数量的字符串。如示例中所示,它们是硬编码的。 如果表发生变化,则需要重新评估哈希函数的质量。
我想对一个字符串应用一个哈希函数,如果该字符串与数组中的一个匹配, 然后调用函数。为此需要一个完美的哈希函数。不允许发生冲突。要求散列的目的是在查找时获得 O(1) 性能。
你对设计一个功能来做到这一点有什么想法?
【问题讨论】:
-
查看gperf主页。
-
以下页面有几种通用哈希函数的实现,它们高效且冲突最小:partow.net/programming/hashfunctions/index.html
标签: c++ c string function hash