copy_backward和reverse_copy之间的区别?

Sea*_*ean 7 c++ stl generic-programming c++-standard-library

我正在阅读C++入门并看到这两个似乎具有相同功能的函数.谁能帮忙告诉我两者有什么区别?谢谢.

Riv*_*asa 8

reverse_copy 实际上以相反的顺序放置元素.

1 2 3 4 5 - > 5 4 3 2 1 
Run Code Online (Sandbox Code Playgroud)

copy_backward 只需向后复制元素,但保留其相对顺序.

1 2 3 4 5 
Run Code Online (Sandbox Code Playgroud)

首先复制5,但放在最后一个位置.所以你的输出仍然是:

1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

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开始的另一个范围,使新范围的元素的顺序相反.