c ++中的64位哈希表

时间:2013-08-15 23:08:10

标签: c++ c++11 hash stl hashtable

我需要一个使用64位作为哈希的哈希表。

为了更清楚,unordered_set接收模板参数Hash,它是一个带有Key类型参数并返回32位无符号整数的仿函数。

我需要类似的东西,只需要一个模板参数Hash,它是一个带有Key类型参数并返回64位无符号整数的仿函数。

有没有人知道这样的容器(在STL这样的标题库上是否可以)?

1 个答案:

答案 0 :(得分:0)

这是一个流行的字符串哈希函数

size_t hash( const char * string )
{
    size_t result = 0;
    while( *string != 0 ) {
        result = result * 31 + *string++;
    }
    return result;
}

制作新的哈希函数对于计算机人来说是一个流行的过去时间,所以我并不是说这是最好的。 但重点是结果类型不需要更大来处理更大的字符串。