Use the copy_backward algorithms: Shift it right by 2 positions : copy_backward « STL Algorithms Non modifying sequence operations « C++ Tutorial






#include <iostream>
#include <cassert>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
using namespace std;

int main()
{
  string s("abcdefghihklmnopqrstuvwxyz");

  vector<char> vector1(s.begin(), s.end());

  copy_backward(vector1.begin(), vector1.end() - 2, vector1.end());
  vector<char>::iterator pos;

  for (pos=vector1.begin(); pos!=vector1.end(); ++pos) {
        cout << *pos << ' ';
  }

  return 0;
}
a b a b c d e f g h i h k l m n o p q r s t u v w x








25.3.copy_backward
25.3.1.Use the copy_backward algorithms: Shift it right by 2 positions
25.3.2.Use std::copy_backward to place elements in one vector into another vector in reverse order
25.3.3.Use copy_backward to copy value from vector to a list
25.3.4.copy_backward, merge, unique and reverse.