4

他们做类似的事情。

在两者之间进行选择时应该考虑什么?

在哪种情况下是首选?

4

1 回答 1

6

我更喜欢std::vector<std::unique_ptr<T>>有几个原因:

  1. 类型安全——虽然这对你来说已经很好地抽象了boost::ptr_vectorptr_vector但仍然在std::vector<void*>.
  2. 对自定义删除器的明确支持——我认为您可以使用 获得自定义删除器行为boost::ptr_vector,但使用std::unique_ptr.
  3. 它是标准的,并且得到兼容的 C++11 编译器的良好支持。
于 2013-02-07T21:09:15.897 回答