设计一个公共的class,通过它的接口可以对任何类型的数组排序。
// 泛型编程.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T>
class Test {
public:
static void Sort(T* array,int len,bool(*compare)(T&,T&)){
T temp;
for (int i=0;i<len-1;i++){
for (int j=len-1;j>i;j--){
if ((*compare)(array[j-1],array[j])){
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
}
}
};
template <class T>
bool Compare(T& a,T& b){
return (a > b?true:false);
};
int _tmain(int argc, _TCHAR* argv[])
{
int intArr[]={1,5,3,9,10,2,7};
Test<int>::Sort(intArr,7,Compare<int>);
for (int i=0;i<7;i++)
cout<<intArr[i]<<" ";
getchar();
return 0;
}
排序后结果为:1 2 3 5 7 9 10