c++中的algorithm头文件中内置了一个next_permutation函数,用来求下一个数组的字典序排列,并且会返回一个布尔值,表示是否存在下一个排列。还有一个相应的prev_permutation函数是求前一个排列。
下面的代码先示范了两个函数的用法,然后是输出整形数组num的全排列。当然别的类型的数组也支持,这里不提。六位的数组会输出6!=7200个排列,所以这里就仅仅输出三个做代表。
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char const *argv[])
{
int num[6] = {3, 2, 4, 1, 6, 5};
next_permutation(num, num + 6);
cout << "The next permutation is