1.模板申明tempate <typename T,typename T2,......>
2.模板使用函数名<实际类型1,实际类型2,......>(函数参数列表......)
#include <stdlib.h>
#include <iostream>
using namespace std;
template <typename T>
void SwapData(T &a, T &b)
{
T tempdata;
tempdata = a;
a = b;
b = tempdata;
return;
}
template <typename T1, typename T2>
void SortData(T1 *arraydata, T2 datanumber)
{
int i = 0;
int j = 0;
for (i = 0; i < datanumber;i++)
for (j = i + 1; j < datanumber;j++)
if (arraydata[i] < arraydata[j])
SwapData<int>(arraydata[i], arraydata[j]);
return;
}
template <typename T1, typename T2>
void PrintData(T1 *arraydata, T2 datanumber)
{
int i = 0;
for (i = 0; i < datanumber; i++)
cout << arraydata[i] << " ";
cout << endl;
}
void main()
{
int a = 12;
int b = 90;
char a1 = 'a';
char b1 = 'b';
SwapData <int>(a, b);
cout << "a = " << a <<endl << "b = " << b << endl;
SwapData <char>(a1, b1);
cout << "a1 = " << a1 << endl << "b1 = " << b1 << endl;
int arraydata[] = {1,6543,24,12,0,23,25,68,3,9,10};
int arraydatalen = sizeof(arraydata) / sizeof(arraydata[0]);
PrintData<int, int>(arraydata, arraydatalen);
SortData<int, int>(arraydata, arraydatalen);
PrintData<int, int>(arraydata, arraydatalen);
system("pause");
return;
}