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

问题描述 投票:-2回答:1

据我所知,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。

c++
1个回答
5
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.