gpt4 book ai didi

c++ - 我应该存储整个对象还是指向容器中对象的指针?

转载 作者:IT老高 更新时间:2023-10-28 11:30:01 25 4
gpt4 key购买 nike

从头开始设计一个新系统。我将使用 STL 来存储某些长生命周期对象的列表和 map 。

问题:我是否应该确保我的对象具有复制构造函数并将对象的拷贝存储在我的 STL 容器中,或者我自己管理生命周期和范围并将指向这些对象的指针存储在我的 STL 容器中通常更好?

我意识到这在细节上有些不足,但我正在寻找“理论上的”更好的答案(如果存在),因为我知道这两种解决方案都是可能的。

玩指针有两个非常明显的缺点:1) 我必须自己在 STL 之外的范围内管理这些对象的分配/解除分配。2) 我无法在堆栈上创建临时对象并将其添加到我的容器中。

我还有什么遗漏的吗?

最佳答案

因为人们正在关注使用指针的效率。

如果您正在考虑使用 std::vector 并且更新很少并且您经常迭代您的集合并且它是一种非多态类型存储对象“拷贝”将更有效,因为您将获得更好的引用位置.

Otoh,如果更新是常见的,存储指针将节省复制/重定位成本。

关于c++ - 我应该存储整个对象还是指向容器中对象的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141337/

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