【发布时间】:2010-11-20 07:14:47
【问题描述】:
我正在尝试编写包含一些遗留代码的两遍算法。我想通过一个特定的容器两次,一次是按顺序,一次是相反的顺序。显然,我的第一个想法是使用iterator 和reverse_iterator,但奇怪的是,我正在使用的容器类的设计者认为不适合为容器定义一个工作reverse_iterator(reverse_iterators 这里不能可以像iterators 一样取消引用)。我已经有一个需要reverse_iterator 的算法。
我的想法是在算法的第一部分使用第一次遍历迭代器,当我执行算法push_front 时,将项目放入一个新容器中,然后遍历新容器。这将占用内存,这在我的应用程序中并不重要,但让我想知道:在 C++ 中是否有任何更清洁的替代品来替代 reverse_iterators,或者我应该花时间仅使用转发 iterators 来重新设计我的算法吗?
【问题讨论】:
标签: c++ algorithm stl iterator