删除QMap值作为指针

时间:2013-11-12 17:31:16

标签: c++ qt pointers memory-management dynamic-allocation

我有一个QMap,密钥为QString值为 myClass。我查看了Qt文档并决定将value定义为myClass对象的指针。但是,我对如何remove密钥和(由 运算符分配的指针对象)值的问题感到困惑?如果我使用了remove()方法,那么在动态分配对象的内存释放方面是否安全?

这是一个不错的选择吗?

myClass *type = types.take("foo");
delete type;

1 个答案:

答案 0 :(得分:0)

正如Qt文档所述,关于QMap :: take()函数

  

使用地图中的键键移除项目,并返回与其关联的值。

这样你的代码就会从地图中删除密钥并删除myClass对象的已分配内存。