使用 QVector 的内存泄漏

Бор*_*ска 0 c++ qt memory-leaks

QVector<cLibraryRecord> Library;
...
Library.push_back(cLibraryRecord(ReaderFullName, BookGenre, BookTitle, AuthorsFullName, IssueDate, ReturnDate));
...
Library.remove(i);
Run Code Online (Sandbox Code Playgroud)

QVector::remove() 不会清除内存。如何清理内存?提前致谢。

ale*_*sdm 5

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

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

但是您的类中也可能存在内存泄漏cLibraryRecord

有关更多详细信息,请参阅 Qt 文档:Qt 容器增长策略