考虑
map <char,node*> mp;
其中节点是一个类
如果我们使用mp.clear();
那么是否需要显式释放内存?
最佳答案
这里的问题是原始指针不传达有关所有权的信息,即谁负责清理节点。该 map 是节点的所有者吗?然后您需要删除这些对象。或者更好的是,您使用 unique_ptr
而不是原始指针。但如果 map 不是节点的所有者,则不得删除节点。
底线是理解所有权的概念并使用适当的智能指针。
关于c++ - 如果映射包含指针,如何清除映射中的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51374142/