使用QVector的内存泄漏

Memory leak using QVector

本文关键字:泄漏 内存 QVector 使用      更新时间:2023-10-16
QVector<cLibraryRecord> Library;
...
Library.push_back(cLibraryRecord(ReaderFullName, BookGenre, BookTitle, AuthorsFullName, IssueDate, ReturnDate));
...
Library.remove(i);

QVector::remove()不清除内存。如何清除记忆?

QVector.remove()总是调用所包含对象的析构函数,但是当您删除元素时,保留的大小(由QVector::capacity()返回)不会自动缩小。

可以使用QVector::squeeze()释放未使用的预留内存。

但是您也可以在类cLibraryRecord中有内存泄漏。

请参阅Qt文档了解更多细节:Qt容器增长策略。