我有一张地图std::map< string,A* > MyMap
,这里A是一个类;它的对象是使用“new”创建的,并像这样插入到地图中,
MyMap["first"] = new A();
MyMap["second"] = new A(); // second step
MyMap["third"] = new A();
像这样,我每隔5秒就将动态创建的A对象插入到数组中。在某些时候我想释放使用“new”创建的内存我不想删除所有项目。我想从地图中释放少量物品。是否有可能只删除特定项目占用的内存? (例如,我想只删除在第二步中创建的A对象所占用的空间。
答案 0 :(得分:1)
当然。首先,获取要删除的对象的指针或引用。然后,使用map.erase()将其从地图中取出。现在,该对象仅包含您的指针或引用,因此您可以使用delete释放其内存。