1
我有,我收集了一些數據的程序,並將它們在一個deque臨時存儲STL deque pop_front()會自動回收內存嗎?
typedef vector<float> floatVector;
...
floatVector * currRecord;
deque<floatVector *> data;
...
...
for (...)
{
...
currRecord = new floatVector(10);
data.push_back(currRecord);
}
後來,我想將數據保存到文件
while (data.size() > 0)
{
for (int i=0; i < 10; i++)
{
fprintf(fPtr, "%lf\t", data[0]->at(i));
}
fprintf(fPtr,"\n");
data.pop_front();
}
所以,我的問題是,這程序導致內存泄漏?我使用new
運算符爲每個currRecord
向量分配內存。 012que函數會自動回收內存嗎?或者我需要把
delete [] data[0]
data.pop_front();
過嗎?另外,如果data
是一個向量而不是一個deque,那麼每件事都會一樣嗎?謝謝!
謝謝!這回答了我的問題。 – 2012-07-19 14:10:56