Kee*_*n Z 11 c++ memory-leaks vector
这里是c ++ noob
假设我声明了一个向量矢量,如:
vector<vector<vector<double> > > phi_x;
Run Code Online (Sandbox Code Playgroud)
在我使用它之后,如何销毁它以释放内存?
我已经阅读了其他一些网站,他们建议使用.clear().根据我的理解,这只删除元素,但不释放矢量容量.我希望矢量完全被遗忘,就像它从未存在过一样.
此外,我目前的矢量应用程序的尺寸为54x54x9,我有大约12个这样的东西.这被认为是愚蠢的大?
如果你打电话.clear(),内部矢量将被彻底销毁.但是,最外面的向量可以保留它用于其向量数组(phi_x.size() * sizeof(vector<vector<double> >)字节)的存储器.要完全清除它并释放所有内存,请使用空向量进行交换:
phi_x.swap(vector<vector<vector<double> > >());
Run Code Online (Sandbox Code Playgroud)
或者干脆phi_x离开范围.
| 归档时间: |
|
| 查看次数: |
18279 次 |
| 最近记录: |