0
我很困惑我应该如何调用MurmurHash3_x86_128()当我有很多关键值。 murmurhash3代码可以找到https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp。方法定义如下。C++ MurmurHash3返回相同的值为不同的密钥
void MurmurHash3_x86_128 (const void * key, const int len,
uint32_t seed, void * out)
我使用for循环传递不同的键值,如下所示,但散列值返回值仍然相同。如果我删除循环并传递个别键值,那么值是不同的。我究竟做错了什么 ?
int main()
{
uint64_t seed = 100;
vector <string> ex;
ex.push_back("TAA");
ex.push_back("ATT");
for(int i=0; i < ex.size(); i++)
{
uint64_t hash_otpt[2]= {};
cout<< hash_otpt << "\t" << endl;
const char *key = ex[i].c_str();
cout << key << endl;
MurmurHash3_x64_128(key, strlen(key), seed, hash_otpt); // 0xb6d99cf8
cout << hash_otpt << endl;
}
return 0;
第一个参数不应该是'key'而不是'* key'吗? – Jeremy
@Jeremy对不起,错字。我正在使用密钥本身。 – rombi