c++ - 使用 std::vector 和内存释放

标签 c++ opencv vector

我正在使用 std::vector<CvPoint>存储视频剪辑的边缘。

std::vector<CvPoint> vPt= floodfill(cvPoint(x,y), 255,  0, iplEdgeCpy, 100);

当边缘被处理时,我正在调用 swap 方法来释放内存。

vector<CvPoint>().swap(myVector);

但是,内存还是没有释放。它表明我的进程正在使用的内存量增加了。

有谁可以帮助我或给我一些建议吗?

最佳答案

取决于您的操作系统。在大多数操作系统下,进程不会“释放”释放的内存,它会卡在空闲列表中,这样如果进程想要分配更多内存,它已经拥有它并且不必去操作系统.

您如何测量内存大小?如果您担心泄漏,那么像 valgrind 这样的工具比只查看进程的内存量更有用。

关于c++ - 使用 std::vector 和内存释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23380594/

相关文章:

c++ - 实现信号量、锁和条件变量

c++ - 使用 regex_replace() 时,当格式字符串中紧跟另一个数字时,反向引用子匹配的正确方法是什么?

c++ - 在opencv中聚类图像片段

java - 我确定最畅销产品的逻辑是否正确?

c++ - 将在调整 vector 大小时调用对象的复制构造函数

c++ - vector 错误,一个非常困惑的分割错误?

c++ - if 语句未评估为 false?程序给出奇怪的输出。为什么?

多个图像上的 C++ OpenCV 线性代数?

opencv - 使用 Opencv 去除小 Blob

C++ .dll 的 Java 等价物?