存储唯一元素但回答 C++ 中另一种排序查询的数据结构;

发布于 2024-08-09 14:28:16 字数 290 浏览 3 评论 0原文

是否存在一个数据结构,它唯一地存储其元素(对于给定的比较函数),但回答该数据结构中相对于另一个比较函数的最高元素的查询?

例如:我有一个具有两个属性的类:
1)尺寸
2)值

我想要一个数据结构,它唯一地存储所有元素的大小,但回答具有最高值的元素的查询。
将 std::set 与大小比较函子一起使用给了我唯一性,但对最高值的查询将具有线性运行时间...
有更好的办法吗?

(我将“添加元素,然后要求最高值”并继续迭代,直到达到某个终止点)

任何信息将不胜感激(论文等)

is there a data structure, which stores its elements uniquely (for a given compare-Functor) but answers queries for the highest element in that data structure with respect to another compare-Function ?

For Example: I have a class with two properties :
1) the size
2) the value

I'd like to have a data structure which stores all elements uniquely regarding its size but answers queries for the element with the highest value.
Using std::set with a compare functor for the sizes gives me uniqueness but queries for the highest value will have linear runtime...
Is there a better way?

(I'll 'add elements then ask for the highest value' and keep iterating this until a certain termination point is reached)

Any information would be appreciated (papers etc)

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

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

发布评论

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

评论(3

你是暖光i 2024-08-16 14:28:16

Boost::MultiIndex<我想到了。

Boost::MultiIndex comes to mind.

情深已缘浅 2024-08-16 14:28:16

您可以使用库 Boost.Multi 来实现您想要的-index

特别检查 教程中的这个示例,它非常接近您的用例。

What you want can be achieved using the library Boost.Multi-index

Check in particular this example in the tutorial, which is very close to your use case.

生死何惧 2024-08-16 14:28:16

它可能是一个kd-tree(k维树)吗?在你的例子中,k 是 2。

Could it be a kd-tree (k-dimensional tree)? In your case, k would be 2.

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