【发布时间】:2013-01-08 03:06:46
【问题描述】:
我有一个有向无环图,由 Node 对象组成。每个节点都有一个std::shared_ptrs 到其他节点的列表,这些节点是它在图中的子节点。我需要很多有用的方法,例如插入/放置/重新设置节点,测试一个节点是否是另一个节点的祖先等。有些是标准的类似 STL 的方法,有些是特定于有向无环图和特定于我的需要。
问题是,当这样的方法接受一个节点作为参数时,它应该接受一个引用吗? weak_ptr?还是shared_ptr?我试图检查用例,但很难说。这里最好的设计是什么?我是智能指针的新手,我不确定什么是最佳选择。我应该将shared_ptr<Node> 视为节点对象的“表示”吗?或者选择的方式更复杂?
提前致谢
【问题讨论】:
标签: c++ parameters c++11 shared-ptr