gpt4 book ai didi

c++ - 哪个排序的 STL 容器用于使用特殊键快速插入和查找?

转载 作者:搜寻专家 更新时间:2023-10-31 01:21:32 25 4
gpt4 key购买 nike

我有一些数据,每个数据项都有一个关联的键。 key 由两部分组成:我们称它们为颜色和 ID。我想按颜色迭代容器以加快渲染速度,我还想单独按 id 查找容器中的项目。

我尝试使用 std::map 来实现这一点

class MyKey {
public:
int color;
int id;
bool operator<(...)
bool operator==(...)
};

但我无法提供一个 < 运算符来保持数据按颜色排序,同时允许 map::find 单独处理 id(即没有关于颜色的信息)。

我希望插入和查找操作都快(例如 O(log(n)))。

知道我可以使用哪种容器来实现它吗?

最佳答案

改编示例here来自 Boost.Multi_index 基于以下修改:

typedef multi_index_container<
MyKey,
indexed_by<ordered_unique<identity<MyKey> >,
ordered_non_unique<member<MyKey,int,&MyKey::color> >
>
> DataSet;

关于c++ - 哪个排序的 STL 容器用于使用特殊键快速插入和查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com