黑科技(next_permutation和prev_permutation)

来源:互联网 发布:南京行知实验幼儿园 编辑:程序博客网 时间:2024/04/30 05:35

关于数列的全排列问题:

如果我们要得到a[]={2,1,3}的全排列,我们可以有如下两种做法:

1、将数列排成升序:(1,2,3),如下写代码

do{      cout << a[0] << " " << a[1] << " " << a[2] << endl;}while (next_permutation(a,a+3))

2、将数列排成降序:(3,2,1),如下写代码
do{      cout << a[0] << " " << a[1] << " " << a[2] << endl;}while (prev_permutation(a,a+3))
即可得到数列的全排列。


如果对vector<int> a进行全排列,则参数可以写成next_permutation(a.begin(),a.end())。

0 0
原创粉丝点击