C++之函数模板(二)

函数模板做函数参数

  • 接下来,以不同类型数组实现从大到小排序,介绍函数模板做函数参数

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");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值