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 containers growth strategies

关于c++ - 使用QVector的内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7546672/

10-11 23:11