gpt4 book ai didi

C++ 我们应该在 MurmurHash3 参数中传递什么?

转载 作者:搜寻专家 更新时间:2023-10-31 01:34:38 24 4
gpt4 key购买 nike

我对应该为 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 )

我在上面的方法中传递了以下值,但我的编译器给我段错误。我做错了什么?

int main()
{
uint64_t seed = 1;
uint64_t *hash_otpt;
const char *key = "hi";
MurmurHash3_x64_128(key, (uint64_t)strlen(key), seed, hash_otpt);
cout << "hashed" << hash_otpt << endl;
return 0;
}

最佳答案

这个函数将它的散列放在 128 位内存中。

您正在做的是传递一个尚未分配给它的指针。

正确的用法应该是这样的:

int main()
{
uint64_t seed = 1;
uint64_t hash_otpt[2]; // allocate 128 bits
const char *key = "hi";
MurmurHash3_x64_128(key, (uint64_t)strlen(key), seed, hash_otpt);
cout << "hashed" << hash_otpt[0] << hash_otpt[1] << endl;
return 0;
}

你可能已经注意到,通过分析 MurmurHash3_x86_128 如何填充 out 参数:

((uint64_t*)out)[0] = h1;
((uint64_t*)out)[1] = h2;

关于C++ 我们应该在 MurmurHash3 参数中传递什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39037577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com