【发布时间】:2013-02-07 06:24:54
【问题描述】:
为了提出我的问题,假设我有一组指针(相同类型)
{p1, p2, ..., pn}
我想将它们存储在多个容器中,因为我需要不同的访问策略来访问它们。假设我想将它们存储在两个容器中,链表和哈希表。对于链表,我有顺序,对于哈希表,我有快速访问。现在,问题是如果我从一个容器中删除一个指针,我需要记住从另一个容器中删除。这使得代码难以维护。所以问题是还有其他模式或数据结构来管理这样的情况吗?智能指针在这里有用吗?
【问题讨论】:
-
是的,使用
std::shared_ptr。 -
不,shared_ptr 不能解决问题。我仍然需要去两个容器来尊重 shared_ptr 才能删除对象。这是不可取的。我想要这样的东西,如果我删除容器 A 中的指针,容器 B 中的相同指针将被自动删除。
标签: c++ algorithm data-structures containers