next_permutation,重新排列范围内的元素[第一,最后一个)返回按照字典序排列的下一个值较大的组合。
返回值:如果有一个更高的排列,它重新排列元素,并返回true;如果这是不可能的(因为它已经在最大可能的排列),它按升序排列重新元素,并返回false。
具体代码:
#include<stdio.h>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
char a[8];
gets(a);
int len=strlen(a);
sort(a,a+len);//要先排好序,因为他是按照字典顺序自动排的
puts(a);
while(next_permutation(a,a+strlen(a)))//调用全排列函数
puts(a);
return 0;
}