带有STL容器的C ++ std :: unique_ptr

时间:2018-04-19 13:39:43

标签: c++11 stl unique-ptr

我得到了一段代码,它使用std :: set来保留一堆指针。

我使用它来确保每个指针在我的容器中只出现一次。

然后,我听说std :: unique_ptr确保指针在我的整个代码中只存在一次,这正是我需要的。

所以我的问题很简单,我应该将容器类型更改为std :: vector吗?或者它不会改变任何东西留下std :: set?

1 个答案:

答案 0 :(得分:0)

我认为你的套装所做的工作可能与unique_ptr不同。

您的设置可能会录制一些事件,并确保每个触发的对象只记录一个事件,使用这些术语非常松散。
一个例子可能是跟踪网格并记录所有通过的节点 对象本身已经存在并且归其他地方所有。

unique_ptr的目的是确保动态分配的对象只有一个所有者,并确保自动销毁该对象。您的对象已经拥有所有者,他们不需要新的!