cpp/algorithm/rotate copy

@1@ Copies the elements from the range, to another range beginning at in such a way, that the element  becomes the first element of the new range and  becomes the last element. @@ The behavior is undefined if either or  is not a valid range, or the source and destination ranges overlap.

@2@ Same as, but executed according to.

Return value
Output iterator to the element past the last element copied.

Complexity
linear in the distance between and.

Possible implementation
See also the implementations in libstdc++, libc++, and MSVC STL.