带有去激活元素的C ++容器

时间:2015-01-16 15:14:36

标签: c++ stl containers

我需要遍历元素容器,在某些情况下(当事件发生时)我需要停用某个元素,以便通过容器的迭代不会考虑这样的元素。但是,经过一段时间后,这个元素被激活,它应该出现在迭代中。

我的选择是使用std :: list,但插入和删除元素可能需要花费很多时间。还有更好的选择吗?

1 个答案:

答案 0 :(得分:0)

您可以根据列表或任何最适合您需求的容器制作您自己的可迭代类。

这个新容器应该有标记项有效/无效的方法,以及一个迭代器,它将遍历底层容器的所有元素,但跳过那些被标记为无效的元素。

如果速度是一个问题,您可以在新类中添加您想要的任何优化,以最大限度地减少对底层容器的迭代(例如,存储有效元素的范围)。