copy_backward和reverse_copy之间的差异
Difference between copy_backward and reverse_copy?
我正在阅读C++入门,看到这两个函数似乎具有相同的功能。有人能帮忙告诉我这两者有什么区别吗?谢谢
reverse_copy
实际上是按相反的顺序放置元素。
1 2 3 4 5 - > 5 4 3 2 1
copy_backward
只是向后复制元素,但保留它们的相对顺序。
1 2 3 4 5
5是先复制的,但放在最后一个位置。所以你的输出仍然是:
1 2 3 4 5
http://en.cppreference.com/w/cpp/algorithm/copy_backward
将由[first,last)定义的范围中的元素复制到以d_last结尾的另一个范围。元素按相反顺序复制(最后一个元素先复制),但保留其相对顺序。
http://en.cppreference.com/w/cpp/algorithm/reverse_copy
将范围[first,last)中的元素复制到从d_first开始的另一个范围,使新范围中的元素按相反顺序排列。
std::copy_backwards
执行:
将元素从[first,last)定义的范围复制到以d_last结尾的另一个范围。元素按相反顺序复制(最后一个元素先复制),但保留其相对顺序。
std::reverse_copy
将范围[first,last)中的元素复制到从d_first开始的另一个范围,使新范围中的元素按相反顺序排列。
因此,不同之处在于,std::copy_backwards
从最后开始复制,并向后工作,保持原始位置,而std::reverse_copy
从开始开始复制,但将它们按相反的顺序排列。
相关文章:
- 错误:未在此范围内声明'reverse'
- std::filesystem::copy throws filesystem_error
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- C++ 一个lambda浅拷贝const Type&如果它被赋予一个命名捕获,如[copy=val](){}?
- QML/C++/QObject Struct Copy
- C++赋值运算符,我们可以用 copy 替换它吗?
- 为什么我使用 std::copy() 收到运行时错误(分段错误)?
- 如何解决C++中声纳库贝静态代码分析错误"Explicitly define the missing copy constructor, move constructor .."
- 如何使用 std::copy 当类有"无符号字符和运算符[]"时
- std::copy 导致运行时检查失败 #2
- 为什么 Clang 在命名空间'std'中没有名为 'copy' 的成员给出错误
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- 为什么使用 <uint8_t>MSVC 2015 编译器的 std::vector::insert 比 std::copy 快 5 倍?
- 使用to_string、reverse、stoi组合的C++反转编号给出运行时错误实例超出范围
- 对于输出,std::copy是否比std::cout快
- C++中的'deep copy'构造函数
- 复制初始化:为什么即使关闭了复制省略,也没有调用move或copy构造函数
- Qt中的QFile::copy(source,dest)的实现有时是错误的吗?
- 有些时候,阶级必须"default copy c'tor" ?当我做"new Type[..]"时会发生什么?
- MSVC++ 17 std::copy 期望自定义迭代器的"operator -"