在实际使用方面有什么区别
a)copy_backward
b)用reverse_iterator进行源和目的地的复制
特别是比另一个更普遍适用?还有其他的区别吗?
更新:如果真的没有什么区别,那么C文献中任何参考这个等价物是值得赞赏的.这个问题背后的动机是了解这是由设计还是其中一个滑板(如丢失copy_if)
解决方法
首先,使用copy_backward()清楚地显示了开发者打算以相反的顺序复制间隔.
copy_backward()与原始双向迭代器一起使用,而reverse_iterator是双向迭代器的适配器,并且可能不如原始迭代器那么有效.
当您需要为诸如copy()之类的输入迭代器应用一个算法来反转序列时,使用reverse_iterator是有意义的,但是对于像copy_backward()这样的双向运算符没有对应关系.
因此,存在概念上和实践上的差异.