使用QVector进行内存泄漏

时间:2011-09-25 15:58:00

标签: c++ qt memory-leaks

QVector<cLibraryRecord> Library;
...
Library.push_back(cLibraryRecord(ReaderFullName, BookGenre, BookTitle, AuthorsFullName, IssueDate, ReturnDate));
...
Library.remove(i);

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

1 个答案:

答案 0 :(得分:4)

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

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

但是你的班级cLibraryRecord也可能有内存泄漏。

有关详细信息,请参阅Qt文档:Qt containers growth strategies