// Illustrating the generic permutation algorithms #include #include #include #include using namespace std; int main() { cout << "Illustrating the generic permutation algorithms." << endl; // Initialize a vector of integers: vector 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()); assert (vector1[0] == 0); assert (vector1[1] == 2); assert (vector1[2] == 1); // Show that from 0 2 1 prev_permutation() produces 0 1 2: prev_permutation(vector1.begin(), vector1.end()); assert (vector1[0] == 0); assert (vector1[1] == 1); assert (vector1[2] == 2); cout << " --- Ok." << endl; return 0; }