0

多くのキー値がある場合、MurmurHash3_x86_128() をどのように呼び出すべきか混乱しています。murmurhash3 コードはhttps://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cppにあります。メソッドの定義を以下に示します。

void MurmurHash3_x86_128 ( const void * key, const int len,
                   uint32_t seed, void * out )

以下に示すように、for ループを使用して別のキー値を渡していますが、ハッシュ値の戻り値は同じです。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;
4

2 に答える 2

3

この線

cout  << hash_otpt << endl;

の内容ではなく、 のアドレスを発行していますhash_otpt

于 2016-09-13T11:46:21.583 に答える