我想知道这段代码是否泄漏:
int main()
{
boost::ptr_vector <char
> v;
v.push_back(new char[10]);
v.clear()
}
ptr_vector析构函数或clear()函数是否会删除它包含的指针,或者我必须自己执行此操作吗?
答案 0 :(得分:-3)
从矢量文档(http://www.cplusplus.com/reference/stl/vector/~vector/):
向量析构函数
销毁容器对象。这个 调用每个包含的元素 析构函数,并释放所有 分配的存储容量 矢量。
delete []不会被调用,所以它会泄漏。正如其他评论者指出的那样,有更多的STL方法可以做到。