【发布时间】:2012-03-28 19:37:41
【问题描述】:
好的,我已经多次遇到这个问题,并认为将它扔给 SO 上的好人会很好。
假设我创建了一个类,我们称之为资源。 所以 Resource 类有一个布尔变量,它指示天气任何实例是否处于活动状态。
现在,我创建一个容器,其中包含对 Resource 类型对象的引用。
随着时间的推移,它们中的一些会被停用,我想删除这些停用的对象,以便它们释放内存。 我总是尝试通过以下方式做到这一点:尝试遍历容器中的元素并删除标记为非活动的元素。这显然会导致迭代器失效问题,并且程序开始抛出运行时错误。
最后,我的问题是,根据某些只能通过查看对象内容来评估的条件,安全删除对象的最佳方法是什么。
【问题讨论】:
-
deleting while iterating 的可能重复项
-
不仅仅是向量或列表,还有地图和其他关联容器。
标签: c++