据我所知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。
答案 0 :(得分:5)
标准库没有强加用于计算散列的特定算法,因此,即使使用同一编译器,即使对于同一系统,也不会从标准库中获得可移植的哈希码。因此,您只需要编写自己的内容即可。