std::rotate_copy

From Cppreference

Jump to: navigation, search
Defined in header <algorithm>

template< class ForwardIterator, class OutputIterator >

OutputIterator rotate_copy( ForwardIterator first, ForwardIterator n_first,

                            ForwardIterator last, OutputIterator d_first );

Copies the elements from the range [first, last), to another range beginning at d_first in such a way, that the element n_first becomes the first element of the new range and n_first - 1 becomes the last element.

Contents

Parameters

first, last - the range of elements to copy
n_first - the element to move to the beginning of the new range
d_first - beginning of the destination range

Return value

output iterator to the element past the last element copied.

Equivalent function

template<class ForwardIterator, class OutputIterator>
OutputIterator rotate_copy(ForwardIterator first, ForwardIterator n_first,
                           ForwardIterator last, OutputIterator d_first)
{
    d_first = std::copy(n_first, last, d_first);
    return std::copy(first, n_first, d_first);
}

Example

Complexity

linear in the distance between first and last

See also

rotate
moves the elements in some range to the left by some amount
(function template)
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
In other languages