我需要遍历元素容器,在某些情况下(当事件发生时)我需要停用某个元素,以便通过容器的迭代不会考虑这样的元素。但是,经过一段时间后,这个元素被激活,它应该出现在迭代中。
我的选择是使用std :: list,但插入和删除元素可能需要花费很多时间。还有更好的选择吗?
答案 0 :(得分:0)
您可以根据列表或任何最适合您需求的容器制作您自己的可迭代类。
这个新容器应该有标记项有效/无效的方法,以及一个迭代器,它将遍历底层容器的所有元素,但跳过那些被标记为无效的元素。
如果速度是一个问题,您可以在新类中添加您想要的任何优化,以最大限度地减少对底层容器的迭代(例如,存储有效元素的范围)。