返回相同的哈希我有以下代码:的boost ::散/的std :: TR1 ::哈希不是复制为const char *
#include <cstring>
#include <boost/functional/hash.hpp>
#include <iostream>
int main(int argc, char **argv)
{
const char *str1 = "teststring";
// copy string
size_t len = strlen(str1);
char *str2 = new char[len+1];
strcpy(str2, str1);
// hash strings
std::cout << "str1: " << str1 << "; " << boost::hash<const char*>()(str1) << std::endl;
std::cout << "str2: " << str2 << "; " << boost::hash<const char*>()(str2) << std::endl;
delete[] str2;
return 0;
}
我总是得到STR1相同的散列(如预期)。但是str2不同 - 事实上,每次运行程序时它都会返回一个不同的散列值。
有人可以解释为什么吗?
谢谢你包括一个完整的例子。这很少见。 – robert
它可能是哈希指针,而不是字符串的内容? – Linuxios