我应该自己擦除boost :: ptr_vector的指针吗?

时间:2011-02-09 20:20:32

标签: c++ boost memory-leaks ptr-vector

我想知道这段代码是否泄漏:

int main()
{
boost::ptr_vector <char> v;
v.push_back(new char[10]);
v.clear()
}

ptr_vector析构函数或clear()函数是否会删除它包含的指针,或者我必须自己执行此操作吗?

1 个答案:

答案 0 :(得分:-3)

从矢量文档(http://www.cplusplus.com/reference/stl/vector/~vector/):

  

向量析构函数

     

销毁容器对象。这个   调用每个包含的元素   析构函数,并释放所有   分配的存储容量   矢量。

delete []不会被调用,所以它会泄漏。正如其他评论者指出的那样,有更多的STL方法可以做到。