template<class T>
class Test
{
public:
static void Sort(T *array,int len,bool (*Compare)(T& a,T& b))//static 可以直接通过Test<T>::Sort访问
{
T temp;
ASSERT(len>=1);
for (int i = 0;i < len-1;i++)//冒泡排序
{
for (int j = len-1;j>i;j--)
{
if (Compare(array[j],array[j-1]))//使用函数指针的方式进行比较
{
temp = array[j-1];//根据升序或降序进行交换
array[j-1] = array[j];
array[j] = temp;
}
}
}
}
};
template<class T>
bool ascend(T& a,T& b)
{
return a < b?true:false;
}
template<class T>
bool descend(T& a,T& b)
{
return a>b?true:false;
}

本文介绍了一个通用的模板元排序算法,该算法能够根据不同的比较函数实现升序或降序排列。通过对冒泡排序的泛型实现,使得同一段代码可以用于不同类型的数据排序,提高了代码的复用性和灵活性。
1118

被折叠的 条评论
为什么被折叠?



