以下命令在2台PC上为hashed_data生成不同的结果。一个使用Visual Studio 2010和另一个Visual Studio 2013.哈希通常应该使用相同的输入
给出相同的结果hash<string> hash_func;
unsigned long long hashed_data = (unsigned long long)hash_func("dogcat");
VS 2010的计算机结果为6824943158688951155
VS 2013的计算机结果为14899951770080783754
其他输入在两台PC之间产生不同的结果。
答案 0 :(得分:1)
总是很难回答否定的问题,但这里的基本答案是存在标准库的多个实现。就标准中记录的情况而言,它们的行为非常非常相似,但没有记录确切的哈希值。这为实施优化留出了空间。由于更智能的散列函数可以导致更高效的散列表,因此可以预期散列函数将不同。