function template
<algorithm>
std::reverse_copy
template <class BidirectionalIterator, class OutputIterator> OutputIterator reverse_copy (BidirectionalIterator first, BidirectionalIterator last, OutputIterator result);
Copy range reversed
[first,last) to the range beginning at result, but in reverse order.The behavior of this function template is equivalent to:
|
|
Parameters
- first, last
- Bidirectional iterators to the initial and final positions of the sequence to be copied. The range used is
[first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last. - result
- Output iterator to the initial position of the range where the reversed range is stored.
The pointed type shall support being assigned the value of an element in the range[first,last).
The ranges shall not overlap.
Return value
An output iterator pointing to the end of the copied range, which contains the same elements in reverse order.Example
|
|
Output:
myvector contains: 9 8 7 6 5 4 3 2 1
Complexity
Linear in the distance between first and last: Performs an assignment for each element.Data races
The objects in the range[first,last) are accessed.The objects in the range between result and the returned value are modified.
Each object is accessed exactly once.
Exceptions
Throws if either an element assignment or an operation on an iterator throws.Note that invalid arguments cause undefined behavior.
See also
- reverse
- Reverse range (function template)
- rotate_copy
- Copy range rotated left (function template)
- copy
- Copy range of elements (function template)
- copy_backward
- Copy range of elements backward (function template)
- swap
- Exchange values of two objects (function template)