gpt4 book ai didi

c++ - 寻找 child

转载 作者:行者123 更新时间:2023-11-28 08:26:02 30 4
gpt4 key购买 nike

我有 A 类。A 类负责管理 B 对象的生命周期,它包含 B 对象的容器,即 map<BGuid,B>。 ,每个 B 对象都包含 C 对象的容器,即 map<CGuid,C> .我有一个全局 A 对象用于整个应用程序。

我有以下问题:我有 CGuid 对象,我想用它来查找我的 C 对象。但为此我还需要知道 BGuid 对象,它会告诉我应该在哪个 B 对象中查看我的 C 对象。但我只有 CGuid,这意味着我必须检查每个 B 对象以查看它是否包含我的 C 对象。但是我认为这很困惑。我想也许我应该有另一个类 M,它将包含我所有 C 对象的映射,我可以直接使用 CGuid 在其中搜索,但这仍然意味着我需要维护额外的映射来进行搜索。

另外我除了将来我的 C 类包含 map<Dguid,D>所以对于 D 对象我会有同样的问题,这次更糟,我需要 Bguid、Cguid 和 Dguid 来找到我的 D 对象。

如何解决这个问题?

最佳答案

您拥有典型的父子关系。我建议您通过不指定处理方式(即使用 map )来改进您的设计。使用一个容器来存储 child ,并让 child 有一个指向父的指针。这样很容易从任意点遍历到顶部。

对这些情况有用的 OOP 设计模式是 CompositePattern

关于c++ - 寻找 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4043740/

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