在线文档教程
C++
算法 | Algorithm

std::copy_backward

科技促进发展:复制[医]倒向

Defined in header
template< class BidirIt1, class BidirIt2 > BidirIt2 copy_backward( BidirIt1 first, BidirIt1 last, BidirIt2 d_last

从范围中复制元素,[first, last),到另一个范围,以d_last元素按%28的反向顺序复制,最后一个元素首先复制%29,但它们的相对顺序保持不变。

如果d_last(first, last]...std::copy必须使用而不是std::copy_backward那样的话。

参数

first, last-the range of the elements to copy
d_last-end of the destination range..

类型要求

-Bidirit必须符合双向迭代器的要求。

返回值

迭代器到最后一个复制的元素。

复杂性

一点儿没错last - first任务。

注记

复制重叠范围时,std::copy当复制到目标范围的左方向%28时,目标范围的开头位于源范围%29之外,而std::copy_backward当将目标范围的%28端复制到源范围%29以外的右侧时,则是适当的。

可能的实施

模板<类BidirIt 1,类BidirIt 2>BidirIt 2副本[医]后向%28 BidirIt 1第一次,BidirIt 1最后一次,BidirIt 2 d[医]最后%29{而%285第21=最后%29{%2A%28-d[医]最后%29=%2A%28--最后%29;}返回d[医]最后;}

*。

二次

#include <algorithm> #include <iostream> #include <vector> int main() { std::vector<int> from_vector; for (int i = 0; i < 10; i++) { from_vector.push_back(i } std::vector<int> to_vector(15 std::copy_backward(from_vector.begin(), from_vector.end(), to_vector.end() std::cout << "to_vector contains: "; for (auto i: to_vector) { std::cout << i << " "; } }

二次

产出:

二次

to_vector contains: 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9

二次

另见

copycopy_if (C++11)copies a range of elements to a new location (function template)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/Algorithm/Copy[医]倒向