替代来自C ++标准容器的boost ptr_array

时间:2016-06-08 06:10:24

标签: c++ c++11 boost

我被限制使用C ++ stdlib并寻找相同的内存释放行为提升ptr_array。如您所知,这会自动释放包含指针列表的内存。

无论如何要在C ++ 11或更高版本的容器中获得相同的行为?

2 个答案:

答案 0 :(得分:3)

您可以使用任何支持移动语义的容器以及唯一或共享指针:container<std::unique_ptr<T>>。在您的情况下,直接等效值为std::array<std::unique_ptr<T>, n>

答案 1 :(得分:2)

新引入的智能指针如std::shared_ptr与标准容器兼容。将它们用作元素:std::vector<std::shared_ptr<MyType>>