我在使用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
我没有在这里看到泄漏,你按照价值复制了双层,没有泄漏。 –