gpt4 book ai didi

c++ - 建立索引 : Copies or pointers?

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:43 25 4
gpt4 key购买 nike

我有一个数据结构来存储……好吧,数据。现在,我需要以稍微不同的方式访问各种数据,因此我实际上是在构建内存中索引。但我想知道:索引应该保存指针还是拷贝?

详细来说,假设我有

class Widget
{
// Ways to access the list of gears...
private:
std::list<Gears> m_gears;
};

现在,我有两个 Widget,并且在这两个 Gear 之间存在一个映射。目前,这是

boost::unordered_map<Gear, Gear>

但是 Gear 是一个相当大的类,我觉得制作这么多拷贝是糟糕的设计。我可以存储一个指针,但映射仅在相应 Widget 的生命周期内有效,并且您开始获取 ->s...(如果那std::list 曾经更改为 std::vector,它变得更复杂...)

关于拷贝,实际上情况稍差:有两个 boost::unordered_map,每个方向一个。因此,对于每个 Gear,我最多制作 2 个拷贝。

或者,我可以将索引放在 Widget 类中,但我觉得这违反了 Widget 类的职责。

最佳答案

您可以试试 Boost 指针容器库:http://www.boost.org/doc/libs/1_43_0/libs/ptr_container/doc/ptr_container.html

我认为它正好解决了您面临的问题。

关于c++ - 建立索引 : Copies or pointers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355826/

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