繁体   English   中英

unordered_map如何在内部使用其哈希?

[英]How does unordered_map use its hash internally?

unordered_map如何在内部使用哈希函数来访问属于键的存储桶?

std :: hash返回size_t类型,该类型可能大于容器中存在的存储桶的数量。 返回的哈希值如何映射到存储桶索引?

典型的unordered_map实现是按size()还是max_size()对返回的哈希值进行模运算,还是会发生更复杂的事情?

典型的unordered_map实现是按size()还是max_size()对返回的哈希值进行模运算,还是会发生更复杂的事情?

几乎。 取模为bucket_count() ,因为那是哈希表中的存储桶数。

该标准不需要使用模运算来完成此操作,只是bucket()函数以某种方式将键值映射到[0,bucket_count)范围,并且具有等效哈希值的键映射到同一存储桶。 哈希的模数是最简单的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM