boost::hash 当然适用于 std::string,但它适用于 c 字符串吗?我尝试过以下代码,但charHash(s2)
每次运行程序时结果都会发生变化。看来 boost::hash 是在 s2 的地址而不是 "Hello" 上生效的,所以哈希结果会随着 OS 分配的随机地址而变化。
std::string s = "Hello";
char *s2 = "Hello";
boost::hash<std::string> stringHash;
boost::hash<char *> charHash;
cout << stringHash(s) << endl; // always "758207331"
cout <<charHash(s2) << endl; // it varies