在algorithm头文件中有一个next_permutation()库函数。可以给出全排列中的下一个。如果想要输出所有的全排列,需要配合do-while 使用。如果用while的话像下面例子中的1, 2, 3,这个就会丢失。当while循环到最后一个全排列时返回false,循环停止。
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[5] = {1, 2, 3};
do{
cout << a[0] << " " << a[1] << " " << a[2] << endl;
} while (next_permutation(a, a+3));
return 0;
}