我在使用Qt(C++)編寫的應用程序中有內存泄漏。我懷疑問題在於這條線。QVector :: replace()是否創建深層副本?
for(int i=0; i<DATA_LENGTH;i++){
cdata1->replace(i,data->at(i));
}
cdata1是QVector,數據是的QList。
我使用replace()的原因是,我有恆定的數據長度。而且我不想每次都創建一個QVector。 QVector初始化與該行的對象構造:
cdata1 = new QVector<double>(DATA_LENGTH,0);
Qt文檔說
注意,使用非const運營商可能會導致QVector做一次深層 副本。
我問的是replace()函數會導致深層複製,或者我怎麼理解?
'data'包含什麼? –
數據也在custtroctor中初始化爲: data = new QList(); 它用data.append()填充雙打; –
HeyYO
我沒有在這裏看到泄漏,你按照價值複製了雙層,沒有泄漏。 –