我应该如何删除向量?

时间:2018-06-19 16:36:40

标签: c++ opencv vector

我有一个矢量

std::vector<cv::Mat>* images = new std::vector<cv::Mat>();
images.push_back(image0);
images.push_back(image1);

std::vector<std::vector<cv::Mat>*> allImages;
allImages.push_back(images);

我应该如何释放内存?

2 个答案:

答案 0 :(得分:1)

我不太熟练使用OpenCV,但是通过删除向量,您调用了向量的析构函数,后者又调用了其所有元素的析构函数。

如果cv::Mat的生存期没有什么特别之处(这很奇怪),只需删除该向量即可。

答案 1 :(得分:0)

对于c ++,可以使用clear()释放矢量的内存并删除其中的所有对象。由于在您的代码中,它是指向向量的指针,因此只需确保清除向量而不是指针,它应该类似于images->clear();