1.2.3 函数模板案例

144 阅读1分钟

案例描述:

  • 利用函数模板封装一个排序函数,可以对不同类型数组进行排序
  • 排序规则从大到小,排序算法为选择排序
  • 利用char数组和int数组进行测试
#include <iostream>

using namespace std;

template<class T>
void my_sort(T arr[], int len)
{
	for (int i = 0; i < len; i++)
	{
		int biggest = i;
		for (int j = i + 1; j < len; j++)
		{
			if (arr[biggest] < arr[j])
			{
				biggest = j;
			}
		}
		swap(arr[i], arr[biggest]);
	}
}

template<class T>
void swap(T& a, T& b)
{
	int temp = a;
	a = b;
	b = temp;
}

template<class T>
void print_info(T arr[], int len)
{
	for (int i = 0; i < len; i++)
	{
		cout << arr[i] << " ";
	}
}

int main()
{
	int arr[] = { 3, 5, 1, 0 };
	int len = sizeof(arr) / sizeof(int);
	my_sort(arr, len);
	print_info(arr, len);

	char arr2[] = "djalksjd";
	len = sizeof(arr2) / sizeof(char);
	my_sort(arr2, len);
	print_info(arr2, len);

	system("pause");
	return 0;
}