河南官网网站建设,怎么制作网站卖东西,山西两学一做网站登录,网站运维可以做哪些1.1函数模板作用#xff1a; 建立一个通用函数#xff0c;其函数返回值类型和形参类型可以不具体指定#xff0c;用一个虚拟的类型来代表#xff0c;提高复用性
1.2语法#xff1a;
//第一种
template typename T
函数声明或定义//第二种
template class T 建立一个通用函数其函数返回值类型和形参类型可以不具体指定用一个虚拟的类型来代表提高复用性
1.2语法
//第一种
template typename T
函数声明或定义//第二种
template class T
函数声明或定义 解释 template关键字声明创建模板 typename和class关键字声明其后面的符号是一种数据类型可以用class代替 T通用的数据类型名称可以替换通常为大小写 1.3示例
#includeiostream
#includemath.h
using namespace std;//利用模板提供通用的交换函数
template typename T
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.显方指定类型Swapint(a, b);cout a a endl;cout b b endl;
}int main()
{test();return 0;
}
1.4模板注意事项
1.模板必须要确定出t的数据类型才可以使用
#includeiostream
#includemath.h
using namespace std;//利用模板提供通用的交换函数
template typename T
void func()
{cout func的调用 endl;
}void test()
{func();
}int main()
{test();return 0;
} 运行发现报错了这是因为。没有确定出T的类型下面我们显示的指定出T的类型
#includeiostream
#includemath.h
using namespace std;//利用模板提供通用的交换函数
template typename T
void func()
{cout func的调用 endl;
}void test()
{funcint();
}int main()
{test();return 0;
}
//运行结果
func的调用 1.5案例 1.创建一个通用的快速排序的函数模板可以排序各种数据类型的数组中的元素 2.创建一个通用的打印输出的函数模板可以输出各种数据类型的数组中的元素
代码如下
#includeiostream
#includestdlib.h
using namespace std;#define SIZE 6//1.创建通用快速排序函数模板
template class T
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 j) {j--;}while(num[i] tmp i j){i;}if(i j){temp num[j];num[j] num[i];num[i] temp;}}num[low] num[i];num[i] tmp;quick_sort(num,low,i-1);quick_sort(num,i1,high);
}//2.创建通用打印输出函数模板
template typename T
void Print(T array[SIZE])
{for(int i 0; i SIZE; i){cout array[i] ;}cout endl;
}//测试函数
void test()
{//测试1//创建一个int数组int array1[SIZE] {1, 2, 3, 4,5,6};//2.排序quick_sortint(array1,0,SIZE-1);//3.输出排序结果Printint(array1);//测试2//创建一个float数组float array2[SIZE] {1.5, 2.5, 3.6, 4.4, 5.9, 6.7};//2.排序quick_sortfloat(array2,0,SIZE-1);//3.输出排序结果Printfloat(array2);
}
int main()
{test();return 0;
}
运行结果
6 5 4 3 2 1
6.7 5.9 4.4 3.6 2.5 1.5