C++ 函数模板 [Function Template]
#include <iostream>
using namespace std;
//书写函数模板
template<typename T> void Sort(T tArray[], int len);
template<typename T> void Show(T tArray[], int len);
template<typename T>
void Sort(T tArray[], int len) {
T temp;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (tArray[j] < tArray[j + 1]) {
temp = tArray[j];
tArray[j] = tArray[j + 1];
tArray[j + 1] = temp;
}
}
}
}
template<typename T>
void Show(T tArray[], int len) {
for (int i = 0; i < len - 1; i++) {
cout << tArray[i] << ", ";
}
cout << endl;
}
int main(){
int iNums[] = { 56 ,47, 13, 89, 32 };
float fNums[] = { 10.8f, 28.6f, 35.5f, 50.2f, 99.9f };
double dNums[] = { 70.8, 65.9, 22.2, 84.3, 53.4 };
cout << "排序前:" ;
Show(iNums, sizeof(iNums) / sizeof(iNums[0]));
Sort(iNums, sizeof(iNums) / sizeof(iNums[0]));
cout << "排序后:" ;
Show(iNums, sizeof(iNums) / sizeof(iNums[0]));
cout << endl;
cout << "排序前:";
Show(fNums, sizeof(fNums) / sizeof(fNums[0]));
Sort(fNums, sizeof(fNums) / sizeof(fNums[0]));
cout << "排序后:";
Show(fNums, sizeof(fNums) / sizeof(fNums[0]));
cout << endl;
cout << "排序前:";
Show(dNums, sizeof(dNums) / sizeof(dNums[0]));
Sort(iNums, sizeof(dNums) / sizeof(dNums[0]));
cout << "排序后:";
Show(dNums, sizeof(dNums) / sizeof(dNums[0]));
}
输出结果: