如何在C++中的32位平台上计算64位哈希?

Ale*_*sky -2 c++

据我所知,std :: hash计算类型为size_t的散列,但我需要计算uint64_t类型的散列,无论应用程序是32位还是64位,将其写入文件并在另一个应用程序中读取,例如.

是否可以使用标准C++库?

为了使问题更清楚:

std::hash<std::string> h1;
std::hash<std::vector<bool>> h2;
std::hash<int> h3;
Run Code Online (Sandbox Code Playgroud)

所有h1(),h2(),h3()的类型都是size_t,但我需要uint64_t.

Pet*_*ker 5

标准库没有强制计算哈希值的特定算法,因此如果使用不同的编译器,即使对于同一系统,也不会从标准库中获取可移植的哈希码.所以你只需要自己编写.