Ich bin verwirrt, wie ich MurmurHash3_x86_128() aufrufen sollte, wenn ich viel Schlüsselwert habe. Der murmurhash3-Code kann https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp gefunden werden. Methodendefinition ist unten angegeben.C++ MurmurHash3 gibt den gleichen Wert für andere Schlüssel
void MurmurHash3_x86_128 (const void * key, const int len,
uint32_t seed, void * out)
Ich übergebe verschiedene Schlüssel Wert mit einer for-Schleife wie unten gezeigt, aber immer noch der Hash-Wert Rückkehr ist gleich. Wenn ich die for-Schleife entferne und den einzelnen Schlüsselwert übergebe, ist der Wert anders. Was mache ich falsch ?
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;
Sollte nicht das erste Argument 'key' anstelle von' key' sein? – Jeremy
@ Jeremy Sorry Tippfehler. Ich benutze den Schlüssel selbst. – rombi