[英]c++ vector of vectors destruction
嗨,我有vector<vector<int> > matrix;
我通过以下方式初始化它:
inline void resize(const UINT nrows, const UINT ncols, T val) {
vector<T> v_rows(ncols, val);
matrix.resize(nrows, v_rows);
}
现在我担心是否要在旧的位置再次调用resize,我是否必须调用clear? 对于外部矩阵? 或清除每个矩阵。at(i).clear(); 还是我什么都不需要做?
只要T管理自己的资源,您就无需执行任何操作。 如果不这样做,那么clear()将无济于事。
如果在任何东西的向量上调用clear
(或以较小的尺寸resize
大小),则该向量中所有需要删除的元素都将调用其析构函数,并释放其内存。
如果您有向量的向量,则每个内部向量的析构函数都会正确清理其资源。 当行向量或列向量被破坏时,它会自动清除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.