我有一个程序,我在其中收集一些数据并将它们临时存储在双端队列中
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
向量分配内存。dequepop_front
函数会自动回收内存吗?或者我需要把
delete [] data[0]
前
data.pop_front();
? 另外,如果data
是向量而不是双端队列,一切都会一样吗?谢谢!