[英]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.