我想确保了以下工作,因为我不打算内存泄漏: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);' –