我见过一些例子,如何做到这一点,比如这个:做一个排列函数,输出所有可能的数组排列?
void permutation(char * arr, int curr, int size)
{
if(curr == size-1)
{
for(int a=0; a<size; a++)
cout << arr[a] << "\t";
cout << endl;
}
else
{
for(int i=curr; i<size; i++)
{
swap(&arr[curr], &arr[i]);
permutation(arr, curr+1, size);
swap(&arr[curr], &arr[i]);
}
}
}
不过,我试图让一个函数,只需要在阵列中的大小和一个ostream输出的置换函数....例如:
无效排列组合为(int *项目,const int的&大小,ostream的&出)
我不能换我围绕如何头至只用大小来做,一个人怎么会这样做呢?
你是什么意思 “只是大小”? –
有没有特别的理由想要摆脱'curr'作为函数参数? –
'std :: next_permutation'是一个很好的起点。 – dasblinkenlight