首先我想說的是,我有一個矢量裏面有一千個矢量。這些內部向量中的每一個都有數千個數字。我想盡可能保持內存管理安全和內存使用最少。矢量指針內存分配矢量
我想問一下,如果我有一個代碼類同下面
int size = 10;
vector<vector<double>>* something = new vector<vector<double>>(size);
vector<double>* insideOfSomething;
for(int i = 0; i < size; i++){
insideOfSomething = &(something->at(i));
//...
//do something with insideOfSomething
//...
}
我知道這「東西」將在堆中被創建。我不明白的是矢量放置的位置,「InsideOfSomething」點?如果它們是在堆棧中創建的,那麼這意味着我有一個向量指針,它指向堆中的一個向量,其中的向量是在堆棧中創建的? (我現在很困惑。)
如果我有一個類似於下面的代碼;
vector<vector<double>*>* something = new vector<vector<double>*>(size);
vector<double>* insideOfSomething;
for(int i = 0; i < size; i++){
something->at(i) = new vector<double>();
insideOfSomething = something->at(i);
//...
//do something with inside insideOfSomething
//...
}
right知道我的所有向量都存儲在堆中,對不對?
根據內存管理哪一個更有用?
tehre的副本很好的解釋。非常感謝你.. – emreakyilmaz 2012-02-28 19:56:11