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;
}
设计一个公共的class,通过它的接口可以对任何类型的数组排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.