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/