1 #include<iostream> 2 3 template<class T> 4 void Perm(T a[], int k, int n) 5 { 6 if(k==n-1) 7 { 8 for(int i=0;i<n;i++) 9 std::cout<<a[i]<<" "; 10 std::cout<<' '; 11 } 12 for(int i=k;i<n;i++) 13 { 14 T t=a[k];a[k]=a[i];a[i]=t; 15 Perm(a,k+1,n); 16 t=a[k];a[k]=a[i];a[i]=t; 17 } 18 } 19 int main(void) 20 { 21 int a[]={0,1,2,3}; 22 Perm(a,0,4); 23 return 0; 24 }