next_permutation函数用于生成给定序列的下一个较大排序,直到序列按降序排列为止。
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int a[3] = { 1,3,2 };
do {
for (int i = 0; i < 3; i++)
{
cout << a[i] << ' ';
}
cout << endl;
} while (next_permutation(a, a + 3));//第一个参数为开始排序的第一个元素,第二个参数为排序的最后一个元素。
}
输出结果:
以上并未出现所以的组合的原因在于其初始排序并不是最小的排序。
如需出现全部的排序,则应配合sort函数使用。
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int a[3] = { 1,3,2 };
sort(a, a + 3);//使初始排序变为最小的排序
do {
for (int i = 0; i < 3; i++)
{
cout << a[i] << ' ';
}
cout << endl;
} while (next_permutation(a, a + 3));
}
输出结果: