stlab.adobe.com Adobe Systems Incorporated

reverse_copy

algorithms.gif
function.gif
Category: algorithms Component type: function

Prototype

template <class BidirectionalIterator, class OutputIterator>
OutputIterator reverse_copy(BidirectionalIterator first,
                            BidirectionalIterator last,
                            OutputIterator result);

Description

Reverse_copy copies elements from the range [first, last) to the range [result, result + (last - first)) such that the copy is a reverse of the original range. Specifically: for every i such that 0 <= i < (last - first), reverse_copy performs the assignment *(result + (last - first) - i) = (first + i).

The return value is result + (last - first).

Definition

Defined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.

Requirements on types

  • BidirectionalIterator is a model of BidirectionalIterator.
  • OutputIterator is a model of OutputIterator.
  • The value type of BidirectionalIterator is convertible to a type in OutputIterator's set of value types.

Preconditions

  • [first, last) is a valid range.
  • There is enough space to hold all of the elements being copied. More formally, the requirement is that [result, result + (last - first)) is a valid range.
  • The ranges [first, last) and [result, result + (last - first)) do not overlap.

Complexity

Linear: exactly last - first assignments.

Example

Vector<int> V;
V.push_back(0);
V.push_back(1);
V.push_back(2);
copy(V.begin(), V.end(), ostream_iterator<int>(cout, " "));
                // Output: 0 1 2
List<int> L(V.size());
reverse_copy(V.begin(), V.end(), L.begin());
copy(L.begin(), L.end(), ostream_iterator<int>(cout, " "));
                // Output: 2 1 0

Notes

See also

reverse, copy

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google