我有一个带有 QString 键和指向 myclass 对象的值指针的 QMap。但是当我动态分配QMap的值时,我不知道如何从QMap中删除a指针:
QMap<QString, myClass*> types;
myClass *type = types.value(typeKey);
if (!type) {
type = new myClass;
types.insert(typeKey, type);
如何按键删除指针?
我知道像 remove
这样的 QMap 方法。使用安全吗?
以下情况如何:
const QString key = types.key(static_cast<myClass*>());
types.remove(key);
最佳答案
remove()
函数从 map 中删除项目,但它不会删除它,因此如果它是指向对象的指针,则您必须自己执行此操作。我会通过以下方式做到这一点:
myClass *type = types.take("foo");
delete type;
关于c++ - 从 QMap 中删除一个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767322/