首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确清除QVector

正确清除QVector
EN

Stack Overflow用户
提问于 2020-07-07 12:23:31
回答 5查看 1.2K关注 0票数 1

我有一个QVector

代码语言:javascript
复制
QVector<const ClassA*> list; 

在这种情况下,我想知道怎样才是清除QVector的最佳方法。

ClassA不是QObject

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-07-07 14:50:44

下面是两行代码:

代码语言:javascript
复制
while (list.count())
     delete list.takeLast();
票数 2
EN

Stack Overflow用户

发布于 2020-07-07 12:25:44

请看一下QVector.clear()的文档--我认为它很好地回答了您的问题。

为了保存它,我在这里复制了它:

void QVector::clear()

从向量中移除所有元素。

注释:直到QT5.6,这也释放了向量所使用的内存。从Qt 5.7开始,容量保持不变。若要释放所有容量,请使用默认构造的向量交换:

代码语言:javascript
复制
QVector<T> v ...;
QVector<T>().swap(v);
Q_ASSERT(v.capacity() == 0);

或者打电话给squeeze()

票数 2
EN

Stack Overflow用户

发布于 2020-07-08 08:51:40

我会写:

代码语言:javascript
复制
qDeleteAll(list);
list.clear();

编辑(在帖子后几句附议):我向Pie_Jesu道歉,他发表了(非常)类似的关于这个问题的评论,我在写这个答案时没有读到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62775232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档