函数模板做函数参数
- 接下来,以不同类型数组实现从大到小排序,介绍函数模板做函数参数
int型和char型数组从大到小排序
#include<iostream>
using namespace std;
int Sort(int *arr, int size)
{
int tmp;
if(arr == NULL){return -1;}
for(int i = 0; i < size; i++)
{
for(int j = i + 1; j < size; j++)
{
if(arr[i] < arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
return 0;
}
int print(int *arr, int size)
{
for (int i = 0; i < size; i++)
{
cout << array[i] << " ";
}
cout << endl;
return 0;
}
void main()
{
int myarr[] = {1,43,6,7868,34};
int size = sizeof(myarr)/sizeof(*myarr);//int 4
printf("打印前.. \n");
print(arr,size);
Sort(arr,size);
printf("打印后..\n");
print(arr,size);
system("pasue");
}
- 下面用函数模板来实现
#include<iostream>
using namespace std;
//
template <typename T>
int Sort(T *arr, int size)
{
int tmp;
if(arr == NULL){return -1;}
for(int i = 0; i < size; i++)
{
for(int j = i + 1; j < size; j++)
{
if(arr[i] < arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
return 0;
}
//
template<tytpename T>
int print(T*arr, int size)
{
for (int i = 0; i < size; i++)
{
cout << array[i] << " ";
}
cout << endl;
return 0;
}
void main()
{
//int
{
int myarr[] = {1,43,6,7868,34};
int size = sizeof(myarr)/sizeof(*myarr);//int 4
Sort<int>(myarr, size);
print<int>(myarr, size);
}
//char
{
char buf[] = {fdgfdgfdh324gfdg};
int len= sizeof(buf)/sizeof(*buf);//int 4
Sort<char>(buf, len);
print<char>(buf, len);
}
system("pause");
}