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

时间:2018-08-31 18:54:24

标签: 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;

所有h1(),h2()和h3()的类型均为size_t,但我需要uint64_t。

1 个答案:

答案 0 :(得分:5)

标准库没有强加用于计算散列的特定算法,因此,即使使用同一编译器,即使对于同一系统,也不会从标准库中获得可移植的哈希码。因此,您只需要编写自己的内容即可。