在实际使用上有什么区别
a) 向后复制
b) 使用 reverse_iterators 复制源和目标
特别是一个比另一个更普遍适用吗?还有其他区别吗?
更新:如果真的没有区别,那么 C++ 文献中对这种等价性的任何引用都是值得赞赏的。这个问题背后的动机是要了解这是设计使然还是其中一个失误(比如缺少 copy_if)
最佳答案
首先,copy_backward() 的使用清楚地表明了开发人员打算以相反的顺序复制间隔。
copy_backward() 适用于原始双向迭代器,而 reverse_iterator 是双向迭代器的适配器,可能不如原始迭代器有效。
当您需要对像 copy() 这样的输入迭代器应用算法来反转序列,但没有像 copy_backward() 这样的双向运算符的对应算法时,使用 reverse_iterator 是有意义的。
因此,存在概念上的和实际差异。
关于c++ - copy_backward 还是用 reverse_iterators 复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10579474/