0

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

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

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

有谁知道这样的容器(最好在像 STL 这样的仅标头库上)?

4

1 回答 1

0

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

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

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

于 2013-08-16T12:11:37.600 回答