带有 STL 容器的 C++ std::unique_ptr
C++ std::unique_ptr with STL container
我有一段代码使用 std::set 来保存一堆指针。
我用它来确保每个指针在我的容器中只出现一次。
然后,我听说 std::unique_ptr 确保指针在我的整个代码中只存在一次,而这正是我所需要的。
所以我的问题很简单,我应该将容器类型更改为 std::vector 吗?或者它不会改变任何东西而留下 std::set ?
我认为你的组合所做的工作可能与 unique_ptr 不同。
您的场景可能会记录一些事件,并确保为每个触发的对象只记录 1 个事件,非常宽松地使用这些术语。
一个示例可能是通过网格进行跟踪并记录通过的所有节点。
这些对象本身已经存在并在别处拥有。
unique_ptr的目的是保证动态分配的对象只有一个拥有者,保证对象自动销毁。您的物品已有所有者,不需要新所有者!
我有一段代码使用 std::set 来保存一堆指针。
我用它来确保每个指针在我的容器中只出现一次。
然后,我听说 std::unique_ptr 确保指针在我的整个代码中只存在一次,而这正是我所需要的。
所以我的问题很简单,我应该将容器类型更改为 std::vector 吗?或者它不会改变任何东西而留下 std::set ?
我认为你的组合所做的工作可能与 unique_ptr 不同。
您的场景可能会记录一些事件,并确保为每个触发的对象只记录 1 个事件,非常宽松地使用这些术语。
一个示例可能是通过网格进行跟踪并记录通过的所有节点。
这些对象本身已经存在并在别处拥有。
unique_ptr的目的是保证动态分配的对象只有一个拥有者,保证对象自动销毁。您的物品已有所有者,不需要新所有者!