c++ - copy_backward 还是用 reverse_iterators 复制?

标签 c++ stl

在实际使用上有什么区别

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/

相关文章:

c++ - undefined reference gcc cxa

c++ - 如何定义在两个类之外的模板类内部的非模板类中声明的友元函数?

C++11:std::vector::shrink_to_fit 复杂度

c++ - 愚蠢的 C++ 语法尚未声明

c++ - Mktime 返回不同的值

c++ - 从字符串序列中提取最后 2 个单词,以空格分隔

c++ - 相同的 'value' 对 std::set 意味着什么?

c++ - std::map 实现中的 Operator[]

c++ - 为arm编译qwt

c++ - C++中是否有堆类支持更改除头部以外的元素的优先级?