我正在阅读C++引物,并看到这两个功能似乎具有相同的功能。有人能帮我告诉我这两者有什么区别吗?谢谢。
发布于 2015-12-02 17:47:22
实际上,reverse_copy将元素置于相反的顺序。
1 2 3 4 5 - > 5 4 3 2 1 copy_backward简单地向后复制元素,但保留它们的相对顺序。
1 2 3 4 5 5是先复制,但放在最后的位置。所以你的输出仍然是:
1 2 3 4 5backward
将由[first,last)定义的范围中的元素复制到另一个以d_last结尾的范围。元素按反向顺序复制(最后一个元素首先被复制),,但它们的相对顺序被保留为。
copy
将元素从范围[首先,最后)复制到从d_first开始的另一个范围,这样新范围中的元素是相反的。
发布于 2015-12-02 17:48:01
std::copy_backwards确实这样做:
将由[first,last)定义的范围中的元素复制到另一个以d_last结尾的范围。元素按反向顺序复制(最后一个元素首先被复制),但它们的相对顺序保持不变。
std::reverse_copy
将元素从范围[首先,最后)复制到从d_first开始的另一个范围,这样新范围中的元素是相反的。
因此,区别在于,std::copy_backwards在结束时开始复制,然后向后工作,保持原来的位置,而std::reverse_copy在开始时开始复制,但将它们按相反的顺序排列。
https://stackoverflow.com/questions/34049447
复制相似问题