c++ - 我是否必须手动删除 QSet 的每个(指针)元素?

标签 c++ qt memory-management

我有一个类(class)成员:

QSet<QDialog*>* dialogs_;  

我只需要删除 dialogs_ 还是必须对它的每个元素都调用 delete?

最佳答案

这样就可以了:

qDeleteAll(*dialogs_);
delete dialogs_

您也可以在不取消引用的情况下执行此操作:

qDeleteAll(dialogs_->begin(), dialogs->end());
delete dialogs_

关于c++ - 我是否必须手动删除 QSet 的每个(指针)元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543791/

相关文章:

c++ - 如何使用条件(三元)运算符?

c++ - SQLite sqlite3pp C++ api:如何将可以在数据库中找到的所有 sqlite3pp::transactions 加载到某个 vector 或集合中?

C++ - 在运行时从基类指针识别派生类

c++ - 检查 Qt 是否可以使用键盘和鼠标

c++ - Symbian C++ 和规范 C++ 之间的语法区别是什么?

linux - 如何在 treewidget 中选择多个项目并删除这些项目?

c++ - QStackedWidget 是在 Qt 程序中处理多个窗口的推荐方法吗?

ios - 在 dealloc 中释放保留属性?

python - 如何从 Python 中判断线程堆栈的使用情况?

c - 重用 LodePNG 分配的内存