如果std :: unordered_map的两个键具有相同的哈希值,那么标准是否保证它们会进入同一个桶?我们假设根据模板等式谓词键不相等,它们只有相同的哈希值.
额外问题:如果相同的哈希值并不意味着相同的存储桶,那么能够单独遍历存储桶的目的是什么?
具有相同散列的对象由无序关联容器放入同一个桶中.因此,两个相等的对象必须具有相同的散列.
23.2.5第8段:
无序关联容器的元素被组织成桶.具有相同哈希码的密钥出现在同一个存储桶中.
奖金问题:为什么你想要单独遍历水桶?
奖励答案:因为你想并行处理容器的内容.存储桶迭代器彼此独立,因此每个线程可以处理存储桶而不进行协调(前提是没有新的条目添加到容器中).桶应大致相同,因此它们提供了方便的并行化量子.