我有一个矢量
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);
我应该如何释放内存?
答案 0 :(得分:1)
我不太熟练使用OpenCV,但是通过删除向量,您调用了向量的析构函数,后者又调用了其所有元素的析构函数。
如果cv::Mat
的生存期没有什么特别之处(这很奇怪),只需删除该向量即可。
答案 1 :(得分:0)
对于c ++,可以使用clear()
释放矢量的内存并删除其中的所有对象。由于在您的代码中,它是指向向量的指针,因此只需确保清除向量而不是指针,它应该类似于images->clear();
。