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