【发布时间】:2018-08-06 15:22:44
【问题描述】:
如果您使用相同的一组(不相等)键值对创建两个 std::unordered_map 容器,但以不同的顺序插入(因此容器包含相同的元素,但可能以不同的顺序),容器是否有保证相等,根据相等运算符 (operator==)。我假设容器元素的哈希码和相等运算符满足其实现所需的所有约束。
【问题讨论】:
-
你试过了吗?此外,该保证将遵循相应的 ISO 标准,因此间接包含答案。
-
@UlrichEckhardt 我试过了,答案似乎是“是的,这取决于插入顺序”,但我不确定这是否是因为我犯了一个错误。跨度>
-
没有。 (此空间特意留空)
-
示例 code 显示 4 对映射的所有插入序列排列相等
-
@UlrichEckhardt “你试过了吗”不能告诉你“它不依赖于插入顺序”是这个实现的一个特性,还是所有 C++ 实现都保证。 (我想它可以告诉你“它确实取决于插入顺序” - 但下面的所有答案都表明这将是实现中的一个错误。)
标签: c++ unordered-map