003函数模板做函数参数类型强化_对字符数组和整形数组排序

#include<iostream>
using namespace std;
// 函数模板 本质 : 类型参数化  
//方便.....
//目的:让你对字符数组和int数组进行排序
template <typename T1,typename T2>//参数T2可以不用类型换参数
int  mySort(T1 *array,T2 size)
{
	T2 i, j;
	T1 tem;
	if (array==NULL)
	{
		return -1;
	}
	//选择排序
	for (i = 0; i < size;i++)
	{
		for (j = i + 1; j < size;j++)
		{
			if (array[i]<array[j])
			{
				tem = array[i];
				array[i] = array[j];
				array[j] = tem;
			}
		}
	}
	return 0;
}

template<typename T,typename T2>
void myPrint(T *array,T2 size)
{
	T2 i = 0;
	for (i = 0; i < size;i++)
	{
		cout << array[i] << ' ';
	}
}

int main(void)
{
	//int类型进行排序
	{
		int myarray[] = { 1, 23, 43, 2, 12, 34, 73 };
		int size = sizeof(myarray) / sizeof(myarray[0]);
		mySort<int ,int >(myarray, size);
		cout << "排序之后" << endl;
		myPrint<int, int>(myarray, size);
	}

	//char 类型的排序
	{
		char buf[] = "jisuanjizuchengyaunli";
		int len = strlen(buf);
		mySort<char, int>(buf, len);//<>内是类型参数化列表,必须显示的指定类型
		myPrint<char, int>(buf, len);
	}

	system("pause");
	return 0;
}
/*
 * 排序之后
73 43 34 23 12 2 1 z y u u u s n n n l j j i i i h g e c a a 请按任意键继续. . .

 */

猜你喜欢

转载自blog.csdn.net/baixiaolong1993/article/details/89482449
今日推荐