我想確保了以下工作,因爲我不打算內存泄漏:C++ 2D矢量清晰地按照預期工作?
vector<vector <float> > X;
for (int i = 0; i < some_size; i++)
{
vector<float> column;
X.push_back(column);
}
// ... use 2D array somehow
X.clear();
/* CALLS DESTRUCTOR OF EACH ELEMENT, BUT SINCE EACH ELEMENT
IS A VECTOR, CLEAR IS RECURSIVELY CALLED ON EACH OF THOSE*/
也就是說,clear()
遞歸地應用於由於clear
是一個向量的析構函數的部位矢量的載體?
我知道X
在超出範圍時被完全清除,但這不是問題的關鍵。
是的。 (插入更多字符) – yngccc
僅供參考,您的'for'循環可以簡化爲'X.resize(some_size)',或者您可以將其創建爲'vector> X(some_size);' –