unordered_map如何在内部使用哈希函数来访问属于键的存储桶?
std :: hash返回size_t类型,该类型可能大于容器中存在的存储桶的数量。返回的哈希值如何映射到存储桶索引?
典型的unordered_map实现是按size()还是max_size()对返回的哈希值进行模运算,还是会发生更复杂的事情?
典型的unordered_map实现是按size()还是max_size()对返回的哈希值进行模运算,还是会发生更复杂的事情?
几乎。模数为bucket_count(),因为这是哈希表中存储桶的数量。
该标准不需要使用模运算来完成此操作,只是该bucket()函数[0,bucket_count)以某种方式将键值映射到范围,并且具有等效哈希值的键映射到同一存储桶。哈希的模数是最简单的方法。
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |