我得到了一段代码,它使用std :: set来保留一堆指针。
我使用它来确保每个指针在我的容器中只出现一次。
然后,我听说std :: unique_ptr确保指针在我的整个代码中只存在一次,这正是我需要的。
所以我的问题很简单,我应该将容器类型更改为std :: vector吗?或者它不会改变任何东西留下std :: set?
答案 0 :(得分:0)
我认为你的套装所做的工作可能与unique_ptr不同。
您的设置可能会录制一些事件,并确保每个触发的对象只记录一个事件,使用这些术语非常松散。
一个例子可能是跟踪网格并记录所有通过的节点
对象本身已经存在并且归其他地方所有。
unique_ptr的目的是确保动态分配的对象只有一个所有者,并确保自动销毁该对象。您的对象已经拥有所有者,他们不需要新的!