如果包含指针,如何清除map中的内存?

时间:2018-07-17 05:55:29

标签: c++ memory-management data-structures

考虑

O(log a * b**2)      节点是一个类

如果我们使用map <char,node*> mp;,是否需要显式释放内存?

1 个答案:

答案 0 :(得分:4)

这里的问题是原始指针没有传达有关所有权的信息,即谁负责清理节点。该地图是节点的所有者吗?然后,您需要删除对象。或者更好的是,您使用unique_ptr代替原始指针。但是,如果地图不是节点的所有者,则不能删除节点。

最重要的是要了解所有权的概念并使用适当的智能指针。