在C ++中,对于unordered_map / set是否有更快的哈希函数?

Sup*_*ald 1 c++ hash unordered-map std unordered-set

默认函数来自std :: hash。我想知道是否有更好的哈希函数可以节省计算时间?用于整数键和字符串键。

我尝试使用Google的City Hash的整数和字符串键,但其性能比std :: hash差一些。

Dev*_*017 6

std :: hash函数的性能已经不错。我认为您应该尝试开源哈希函数。

检查一下https://github.com/Cyan4973/xxHash。我从其描述中引用:“ xxHash是一种非常快速的Hash算法,以RAM速度限制运行。它成功完成了SMHasher测试套件,该套件评估了散列函数的冲突,分散和随机性。代码具有高度的可移植性,并且散列在所有平台(小/大端)。”

此线程也来自该站点上的另一个问题:快速跨平台C / C ++哈希库。FNV,Jenkins和MurmurHash速度很快。