我有一个 QMap,由指向类对象的指针组成,使用 new
分配。我需要删除所有这些指针。使用 QMap 执行此操作的正确方法是什么?我可以这样做:
QList<ClassName*> allVals = map.values();
for (QList<ClassName*>::iterator it = allVals.begin(), endIt = allVals.end(); it != endIt; ++it) {
delete *it;
}
但是有没有更好的方法来做同样的事情?
最佳答案
最好的方法是使用 qDeleteAll(...) :
qDeleteAll( map ); // deletes all the values stored in "map"
map.clear(); // removes all items from the map
qDeleteAll(...)
可用于 Qt 的所有容器。这样您就不必担心循环,也不必担心单独删除项目。
关于c++ - 从 QMap 中删除所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849858/