gpt4 book ai didi

c++ - 映射键排序

转载 作者:行者123 更新时间:2023-11-30 02:10:27 24 4
gpt4 key购买 nike

我正在为我的应用程序构建对象系统。现在我有这样的代码:

std::map<std::string, Object*> mObjects;

想法是更新 Object 类的每个对象(调用 update),但要按某种顺序。

每个对象中都有一个成员int z_index;。我如何根据该索引对 map 进行排序(顺便说一句,索引可能相同)?

我的第一个想法是:将 id 添加到键名中,例如:

Object *temp = /* ... */
temp->z_index = 5;
temp->name = "test";
mObjects[temp->z_index + temp->name] = temp;

但是使用这段代码我无法按名称访问对象。

最佳答案

似乎是 boost 多索引容器的理想候选者!

或者,您可以维护两个映射,一个按名称,一个按索引,都保存指向同一对象的指针(顺便说一下,应该看看智能指针 - 例如 shared_ptr!)

或者创建一个更复杂的 key (即 struct 带有名称和索引,提供 operator< ),它可以同时检查名称和索引等。

关于c++ - 映射键排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4583411/

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