1
我在我的C++代码中实现谷歌密集散列映射。我想使用MurmurHash2(http://murmurhash.googlepages.com/)作为散列函数。但这是问题。我已经尝试了很多,但似乎无法使哈希函数工作。该示例显示了使用默认散列函数(hash < const char *>)。使用散列函数的问题
dense_hash_map < const char * , int, hash < const char*>, eqstr> months;
我想更换hash< const char * >
由
unsigned int MurmurHash2 (const char * key, int len, unsigned int seed)
嘿谢谢你的回复。是的,strlen就足够了。我也可以尝试使用std :: string。但假设我们知道'len',你能告诉我如何执行“阻抗匹配”。我的意思是,我只是想能够使用散列函数。我无法创建将使用MurmurHash2作为散列函数的hash_map。谢谢! – aneesh 2009-12-23 11:23:47
您需要编写自己的函数(只接受一个参数),并在内部调用MurmurHash2及其三个参数,并将该函数用作hash_map的“哈希函数”。您将永远无法将三参数函数用作“散列函数”本身:'hash_map'需要一个具有ONE参数的散列函数,因此您必须自己编写关于该约束的代码并使用它。为什么这是一个问题? – 2009-12-23 16:43:42