データを収集して一時的に両端キューに保存するプログラムがあります
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
が両端キューではなくベクトルである場合、すべてが同じになりますか?ありがとう!