|
ALINK="#ff0000">
rotate_copy
Prototypetemplate <class ForwardIterator, class OutputIterator> OutputIterator rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result); DescriptionRotate_copy copies elements from the range [first, last) to the range [result, result + (last - first)) such that *middle is copied to *result, *(middle + 1) is copied to *(result + 1), and so on. Formally, for every integer n such that 0 <= n < last - first, rotate_copy performs the assignment *(result + (n + (last - middle)) % (last - first)) = *(first + n). Rotate_copy is similar to copy followed by rotate, but is more efficient. The return value is result + (last - first).DefinitionDefined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.Requirements on types
Preconditions
ComplexityLinear. Rotate_copy performs exactly last - first assignments.Exampleconst char alpha[] = "abcdefghijklmnopqrstuvwxyz"; rotate_copy(alpha, alpha + 13, alpha + 26, ostream_iterator<char>(cout)); // The output is nopqrstuvwxyzabcdefghijklm Notes[1] It follows from these two requirements that [first, last) is a valid range. See alsorotate, copy.Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation
|