C++ std::tr1::unordered_map 中的相等性

发布于 2024-11-02 22:23:29 字数 153 浏览 0 评论 0原文

std::tr1::unordered_map 遗漏相等(==)运算符是否有原因, std::map 存在哪个?

实现这个的好方法是什么?我正在考虑创建两组 unordered_map::value_type,从两个 hash_map 初始化它们,然后检查 为了两个集合相等。

Is there a reason that std::tr1::unordered_map left out the equality (==) operator,
which exists for std::map ?

What is a good way to implement this? I am thinking of creating two sets of unordered_map::value_type, initializing them from the two hash_maps and then checking
for equality of the two sets.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

潜移默化 2024-11-09 22:23:29

这是委员会的决定,恕我直言,这是一个错误。它已针对 std::unordered_map 进行了更正(在 C++11)。

使用 std::equal 并不是查找无序容器相等性的好方法。毕竟,它们的顺序可能不同。

N3068 是引入平等的论文无序容器的比较。它解释了确定平等的动机和技术。

It was a committee decision that imho was a mistake. It has been corrected for std::unordered_map (in C++11).

Using std::equal is not a good way to find the equality of unordered containers. After all, they may not be in the same order.

N3068 is the paper that introduced equality comparisons for the unordered containers. It explains the motivation and the technique for determining equality.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文