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