Movatterモバイル変換


[0]ホーム

URL:


cplusplus.com

Reference

<algorithm>

function template
<algorithm>

std::reverse_copy

template <class BidirectionalIterator, class OutputIterator>  OutputIterator reverse_copy (BidirectionalIterator first,                               BidirectionalIterator last, OutputIterator result);
Copy range reversed
Copies the elements in the range[first,last) to the range beginning atresult, but in reverse order.

The behavior of this function template is equivalent to:
1
2
3
4
5
6
7
8
9
10
11
template <class BidirectionalIterator,class OutputIterator>  OutputIterator reverse_copy (BidirectionalIterator first,                               BidirectionalIterator last, OutputIterator result){while (first!=last) {    --last;    *result = *last;    ++result;  }return result;}

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 betweenfirst andlast, including the element pointed byfirst but not the element pointed bylast.
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// reverse_copy example#include <iostream>// std::cout#include <algorithm>// std::reverse_copy#include <vector>// std::vectorint main () {int myints[] ={1,2,3,4,5,6,7,8,9};  std::vector<int> myvector;  myvector.resize(9);// allocate space  std::reverse_copy (myints, myints+9, myvector.begin());// print out content:  std::cout <<"myvector contains:";for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)    std::cout <<' ' << *it;  std::cout <<'\n';return 0;}

Output:
myvector contains: 9 8 7 6 5 4 3 2 1


Complexity

Linear in thedistance betweenfirst andlast: Performs an assignment for each element.

Data races

The objects in the range[first,last) are accessed.
The objects in the range betweenresult 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 causeundefined 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)
Home page |Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved -v3.3.4s
Spotted an error? contact us

[8]ページ先頭

©2009-2026 Movatter.jp