【发布时间】:2013-02-07 21:03:55
【问题描述】:
他们做类似的事情。
在两者之间选择时应该考虑什么?
在哪种情况下是首选?
【问题讨论】:
-
我认为您需要提出比“更好”更客观的要求。
-
取决于“更好”的含义。后者不需要外部依赖,但前者可能更易于使用(取决于您对“更简单”的定义:])。
他们做类似的事情。
在两者之间选择时应该考虑什么?
在哪种情况下是首选?
【问题讨论】:
我更喜欢std::vector<std::unique_ptr<T>> 有几个原因:
boost::ptr_vector 中对您来说已经很好地抽象了,但ptr_vector 仍然以std::vector<void*> 的形式实现。boost::ptr_vector 获得自定义删除器行为,但使用 std::unique_ptr 时支持更清晰(和明确)。【讨论】:
vector<unique_ptr> 是标准。人们知道它是什么。大多数人可能不知道boost::ptr_vector