unordered_map 使用什么位哈希函数?
C++0x
的 unordered_map
默认使用什么位哈希? std::hash
函数返回 size_t
。这是否意味着 unordered_map
使用 16 位哈希函数?
What bit hash does unordered_map
of C++0x
use by default? std::hash
function returns size_t
. Does that mean unordered_map
uses a 16 bit hash function?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
std::unordered_set
默认使用std::hash
。如果
std::size_t
对你来说是 16 位,那么我猜它确实使用了 16 位哈希。在 16 位机器上,我希望unordered_map::max_size()
足够低,使用如此弱的哈希不会成为问题。std::unordered_set
usesstd::hash
by default.If
std::size_t
is 16-bit for you, then I guess it does use a 16-bit hash. On a 16-bit machine, I'd expectunordered_map::max_size()
to be low enough that using such a weak hash wouldn't be a problem.