繁体   English   中英

C ++向量破坏向量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM