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 为找到当前上一个的排列是什么