template<class Elem>
void SaveResult(Elem src[])
{
//printf("%s/n",src);
}
//完全特化
template<>
void SaveResult(char src[])
{
printf("%s/n",src);
}
//全排列
template<class Elem>
void RankAll(Elem src[], int iStart, int iEnd)
{
if (iStart < iEnd)
{
for (int i = iStart; i <= iEnd; ++i)
{
swap(src, i, iStart);
RankAll(src, iStart + 1, iEnd);
swap(src, i, iStart);
}
}
else
{
SaveResult(src);
}
}
void SaveResult(Elem src[])
{
//printf("%s/n",src);
}
//完全特化
template<>
void SaveResult(char src[])
{
printf("%s/n",src);
}
//全排列
template<class Elem>
void RankAll(Elem src[], int iStart, int iEnd)
{
if (iStart < iEnd)
{
for (int i = iStart; i <= iEnd; ++i)
{
swap(src, i, iStart);
RankAll(src, iStart + 1, iEnd);
swap(src, i, iStart);
}
}
else
{
SaveResult(src);
}
}