我应该继续使用boost :: shared_array还是使用boost :: shared_ptr <type [] =“”>?</type>

时间:2014-02-20 09:07:42

标签: c++ boost

  

从Boost版本1.53开始,shared_ptr可用于保存   指向动态分配的数组的指针。   (http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/shared_ptr.htm

此外,使用shared_ptr还具有分配器功能,例如boost :: make_shared&lt; int []&gt;(...);
我应该尽可能开始使用boost :: shared_ptr而不是boost :: shared_array吗?似乎boost :: shared_ptr可以完成大部分工作boost :: shared_array。

2 个答案:

答案 0 :(得分:1)

如果代码正确且有效,我不会更改主题。

如果我有空闲时间并希望做出改变,我会立即转移到std::shared_ptr<T[]>

答案 1 :(得分:0)

是的,使用shared_ptr的一个重要好处是您不再需要显式释放内存。 shared_ptr是一个智能指针,因此可以自己解除内存,从而避免任何内存泄漏。此外,还有类似的问题,请访问链接Why use one vs the other: `boost::shared_array` VS `boost::shared_ptr<std::vector>`?