好吧,我已经遇到过这个问题多次,并认为这将是很好的把这个扔在SO上的好人。从容器中删除元素时,通过它们迭代
说我已经做了一个类,让我们称之为资源。 因此,Resource类有一个布尔变量,它指示任何实例处于活动状态的天气。
现在,我创建了一个容器来保存对资源类型对象的引用。
随着时间的推移,其中一些被取消激活,我想删除这些停用的对象,以便释放内存。 总是我试着做到这一点:尝试迭代容器中的元素并删除标记为非活动状态的元素。这显然会导致迭代器失效的问题,并且程序开始抛出运行时错误。
因此,最后,我的问题是,根据某些只能通过查看对象的内容才能评估的条件来安全删除对象的最佳方法是什么。
[迭代时删除]的可能重复(http://stackoverflow.com/questions/3901356/deleting-while-iterating) – 2012-03-12 11:53:33
可能重复[迭代向量,删除某些项目,我去](http:// stackoverflow.com/questions/1604588/iterate-vector-remove-certain-items-as-i-go) – 2012-03-12 12:26:26
不只是讨论向量或列表,还有地图和其他关联容器。 – angryInsomniac 2012-03-13 06:27:20