1.1函数模板作用:
建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表,提高复用性
1.2语法:
//第一种
template
函数声明或定义
//第二种
template
函数声明或定义
解释:
template:关键字,声明创建模板
typename和class:关键字,声明其后面的符号是一种数据类型,可以用class代替
T:通用的数据类型名称可以替换,通常为大小写
1.3示例:
#include
#include
using namespace std;
//利用模板提供通用的交换函数
template
void Swap(T & a, T & b)
{
T temp = a;
a = b;
b = temp;
}
void test()
{
int a = 10, b = 20;
//利用模板实现交换
//1.自动类型推导
Swap(a, b);
//2.显方指定类型
Swap(a, b);
cout
1.4模板注意事项:
1.模板必须要确定出t的数据类型才可以使用
#include
#include
using namespace std;
//利用模板提供通用的交换函数
template
void func()
{
cout
运行发现报错了,这是因为。没有确定出T的类型,下面我们显示的指定出T的类型:
#include
#include
using namespace std;
//利用模板提供通用的交换函数
template
void func()
{
cout ();
}
int main()
{
test();
return 0;
}
//运行结果:
func的调用
1.5案例:
1.创建一个通用的快速排序的函数模板,可以排序各种数据类型的数组中的元素
2.创建一个通用的打印输出的函数模板服务器托管网,可以输出各种数据类型的数组中的元素
代码如服务器托管网下:
#include
#include
using namespace std;
#define SIZE 6
//1.创建通用快速排序函数模板
template
void quick_sort(T num[], int low, int high )
{
int i,j;
T temp;
T tmp;
i = low;
j = high;
tmp = num[low];
if(i > j)
{
return;
}
while(i != j)
{
while(num[j] = tmp && i
void Print(T array[SIZE])
{
for(int i = 0; i (array1,0,SIZE-1);
//3.输出排序结果
Print(array1);
//测试2
//创建一个float数组
float array2[SIZE] ={1.5, 2.5, 3.6, 4.4, 5.9, 6.7};
//2.排序
quick_sort(array2,0,SIZE-1);
//3.输出排序结果
Print(array2);
}
int main()
{
test();
return 0;
}
运行结果:
6 5 4 3 2 1
6.7 5.9 4.4 3.6 2.5 1.5
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net