c++中的64位哈希表

64 bit hash table in c++

本文关键字:哈希表 64位 中的 c++      更新时间:2023-10-16

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

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

我只需要类似的东西——它应该采用一个模板参数Hash,这是一个接受类型为Key的参数并返回64位无符号整数的函子。

有人知道这样一个容器吗(最好是在STL这样的纯头库上)?

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

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

编写新的散列函数是计算机人过去流行的一段时间,所以我并不是说这是最好的。但关键是,结果类型不需要更大就可以处理更大的字符串。