两个相同的unordered_maps的顺序是否相同?

pms*_*pms 4 c c++ unordered-map unordered-set c++11

换句话说,如果我填充两个unordered_map或者unordered_set具有完全相同内容和相同散列函数的对象,那么迭代它们会给出相同的键/值对序列吗?

如果是这样,那么它的条件是什么(例如相同的散列函数,相同的键,不一定是相同的值).

Dav*_*rtz 5

不可以.例如,没有要求具有相同散列的对象按任何特定顺序放置.事实上,一般来说,无序地图不可能这样做,因为它可以访问的唯一信息是哈希值.

  • @SethCarnegie:首先,OP没有说他们会以相同的顺序添加.其次,任何东西都可能使它们的订购方式不同 如果需要,实现可以随机排序,甚至重新排序,以便将最常访问的对象放在其哈希链中. (4认同)