首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >copy_backward与reverse_copy的差异?

copy_backward与reverse_copy的差异?
EN

Stack Overflow用户
提问于 2015-12-02 17:42:43
回答 2查看 1.7K关注 0票数 7

我正在阅读C++引物,并看到这两个功能似乎具有相同的功能。有人能帮我告诉我这两者有什么区别吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-02 17:47:22

实际上,reverse_copy将元素置于相反的顺序。

代码语言:javascript
复制
1 2 3 4 5 - > 5 4 3 2 1 

copy_backward简单地向后复制元素,但保留它们的相对顺序。

代码语言:javascript
复制
1 2 3 4 5 

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

代码语言:javascript
复制
1 2 3 4 5

backward

将由[first,last)定义的范围中的元素复制到另一个以d_last结尾的范围。元素按反向顺序复制(最后一个元素首先被复制),,但它们的相对顺序被保留为

copy

将元素从范围[首先,最后)复制到从d_first开始的另一个范围,这样新范围中的元素是相反的。

票数 9
EN

Stack Overflow用户

发布于 2015-12-02 17:48:01

std::copy_backwards确实这样做:

将由[first,last)定义的范围中的元素复制到另一个以d_last结尾的范围。元素按反向顺序复制(最后一个元素首先被复制),但它们的相对顺序保持不变。

std::reverse_copy

将元素从范围[首先,最后)复制到从d_first开始的另一个范围,这样新范围中的元素是相反的。

因此,区别在于,std::copy_backwards在结束时开始复制,然后向后工作,保持原来的位置,而std::reverse_copy在开始时开始复制,但将它们按相反的顺序排列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34049447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档