【发布时间】:2012-08-29 03:14:41
【问题描述】:
是否有任何同时按键和值排序的关联容器?我想要 C++ 中的这个数据结构。在 Java 中,有 containsKey 和 containsValue 方法。我需要这个关联数据结构的迭代器(containsKey 和containsValue)在尽可能短的时间内完成。它必须接近 log(n)。
【问题讨论】:
-
有一个
std::set,其中每个值本身都用作键,元素按该值排序。如果您想要单独的键和值对(例如std::map) 标准库没有提供任何内容。您必须使用 Boost 或根据您的自定义要求编写自己的容器类。 -
this existing post 包含通常的答案(Boost 多索引)。您的问题是否与该帖子重复?
-
@jogojapan 不是我理解的问题。在这里,OP 关心的是键和值的迭代顺序,而不是把值映射回键。
-
我想要单独的键和值。我可以在 boost 中找到这个吗?或者有什么方法可以实现一个非常接近这个的容器?
-
@MattBall 好的,明白了。不过,我不得不说,Java
containsKey和containsValue不用于迭代。在相关说明中,containsValue在 Java 中不需要为 O(log n)。
标签: c++ algorithm data-structures