【发布时间】:2018-11-28 16:44:12
【问题描述】:
我有一个向量
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);
我应该如何释放内存?
【问题讨论】:
-
为什么会有指向向量的指针?为什么不简单地
std::vector<cv::Mat> images?另外,向量是否分配有new? -
只删除向量。 OpenCV Mat 使用引用计数,所以如果没有在其他地方使用,所有图像都会自动释放,因为删除向量将调用每个元素的析构函数。如果向量有 cv::Mat* 元素,则必须手动删除它们。
-
因为我希望对象在当前范围内存活。