# All permutations of an array using STL in C++

• Difficulty Level : Medium
• Last Updated : 27 Mar, 2019

Given an array, the task is to print or display all the permutations of this array using STL in C++.

Examples:

Input: a[] = {1, 2, 3}
Output:
1  2  3
1  3  2
2  1  3
2  3  1
3  1  2
3  2  1

Input: a[] = {10, 20, 30, 40}
Output:
10  20  30  40
10  20  40  30
10  30  20  40
10  30  40  20
10  40  20  30
10  40  30  20
20  10  30  40
20  10  40  30
20  30  10  40
20  30  40  10
20  40  10  30
20  40  30  10
30  10  20  40
30  10  40  20
30  20  10  40
30  20  40  10
30  40  10  20
30  40  20  10
40  10  20  30
40  10  30  20
40  20  10  30
40  20  30  10
40  30  10  20
40  30  20  10

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The next possible permutation of the array can be found using next_permutation() function provided in STL.

Syntax:

bool next_permutation (BidirectionalIterator first,
BidirectionalIterator last);

Below is the implementation of the above Approach:

 // C++ program to display all permutations // of an array using STL in C++    #include using namespace std;    // Function to display the array void display(int a[], int n) {     for (int i = 0; i < n; i++) {         cout << a[i] << "  ";     }     cout << endl; }    // Function to find the permutations void findPermutations(int a[], int n) {        // Sort the given array     sort(a, a + n);        // Find all possible permutations     cout << "Possible permutations are:\n";     do {         display(a, n);     } while (next_permutation(a, a + n)); }    // Driver code int main() {        int a[] = { 10, 20, 30, 40 };        int n = sizeof(a) / sizeof(a[0]);        findPermutations(a, n);        return 0; }

Output:

Possible permutations are:
10  20  30  40
10  20  40  30
10  30  20  40
10  30  40  20
10  40  20  30
10  40  30  20
20  10  30  40
20  10  40  30
20  30  10  40
20  30  40  10
20  40  10  30
20  40  30  10
30  10  20  40
30  10  40  20
30  20  10  40
30  20  40  10
30  40  10  20
30  40  20  10
40  10  20  30
40  10  30  20
40  20  10  30
40  20  30  10
40  30  10  20
40  30  20  10

My Personal Notes arrow_drop_up
Recommended Articles
Page :