全排列

next_permutation        prev_permutation

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int n,z[1234];
 8 
 9 int main()
10 {
11     cin >> n;
12     for (int a=1;a<=n;a++)
13         z[a] = a;
14     //注意在用 next_permutation和prev_permutation都要用do-while 循环,因为它不管是否满足,都要先将当前的排列进行一次输出操作 
15     do
16     {
17         for (int a=1;a<=n;a++)
18             cout << z[a] << " "; 
19         cout << endl;
20     }while (next_permutation(z+1,z+n+1));//右端点多1,左闭右开 
21 }

其实prev_permutation 就是与next_permutation做相反操作  

next_permutation 为找到当前下一个的排列是什么
prev_permutation 为找到当前上一个的排列是什么

原文地址:https://www.cnblogs.com/New-ljx/p/10345396.html