rotate(), rotate_copy()

rotate() is passed three iterators: first, middle, and last. It exhanges the two ranges marked by the iterators first, middle-1 and middle, last-1. For example, given the following C-style character string "boohiss!!",

char ch[] = "boohiss!!"; 

To change it to "hissboo!!", the call to rotate() looks like this:

rotate( ch, ch+3, ch+7 ); 

Here is another example:

#include <algorithm> 
int ia[] = { 1, 3, 5, 7, 9, 0, 2, 4, 6, 8, 10 }; 
vector<int> vec( ia, ia+11 ), vec2(11); 

In this first invocation, we exchange the last six elements, beginning with 0, with the first five elements, beginning with 1:

// rotate on middle element(0) : 0 2 4 6 8 10 1 3 5 7 9 
rotate( ia, ia+5, ia+11 ); 

In this second invocation, we exchange ...

Get Essential C++ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.