copy_backward还是用reverse_iterators复制?

haw*_*awk 10 c++ stl

在实际使用方面,它们之间存在差异

a)copy_backward

b)使用reverse_iterators复制源和目标

特别是比另一个更普遍适用?还有其他差异吗?

更新:如果真的没有区别,那么C++文献中对这种等价的任何引用都会受到赞赏.这个问题背后的动机是要了解这是设计还是其中一个漏洞(比如缺少copy_if)

小智 5

首先,使用copy_backward()清楚地显示了开发人员以相反顺序复制间隔的意图.

copy_backward()适用于原始双向迭代器,而reverse_iterator是双向迭代器的适配器,可能不如原始迭代器有效.

当你需要将像copy()这样的输入迭代器的算法应用于反向序列时,使用reverse_iterator是有意义的,但是没有像copy_backward()这样的双向运算符的对应物.

因此,存在概念实际差异.


ink*_*boo -1

实际上没有什么区别。以同样的方式,您可以比较正向复印。

复印件

b) 使用反向迭代器进行 copy_backward。

  • @inkooboo:这是你的(a)和(b)之间的区别:一个至少需要一个双向迭代器,而另一个则不需要。同样的差异不适用于 hawk 的 (a) 和 (b),因为它们都至少需要一个双向迭代器。 (2认同)