簡體   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