Illustrating the generic next_permutation algorithms : next_permutation « STL Algorithms Helper « C++ Tutorial






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

int main()
{
  vector<int> vector1(3);
  for (int i = 0; i < 3; ++i) 
     vector1[i] = i;

  // In lexicographical order the permutations of 0 1 2 are
  // 0 1 2, 0 2 1, 1 0 2, 1 2 0, 2 0 1, 2 1 0. 
  // Show that from 0 1 2 next_permutation produces 0 2 1:
  next_permutation(vector1.begin(), vector1.end());
  cout << vector1[0] << " ";
  cout << vector1[1] << " ";
  cout << vector1[2] << " ";

  return 0;
}
0 2 1








32.13.next_permutation
32.13.1.Illustrating the generic next_permutation algorithms
32.13.2.next_permutation() and prev_permutation().
32.13.3.All permutations of ABC by use of prev_permutation()
32.13.4.All permutations of ABC by use of next_permutation()
32.13.5.Use next_permutation to permute elements until they are sorted