主要针对c++泛型编程和STL技术
模板的特点:
c++另一种编程思想称为:泛型编程,主要利用的技术就是模板
c++提供两种模板机制:函数模板 和 类模板
1.1、函数模板语法
函数模板作用:
建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表
语法:
template<typename T>
函数声明或定义
解释:
template —— 声明创建模板
typename ——表面其后面的符号是一种数据类型,可以用class代替
T —— 通用的数据类型 ,名称可以替换,通常为大小写字母
有两种方式使用函数模板:
隐士转换:
显示转换:
eg:
#include <iostream>
using namespace std;
//函数模板
template<typename T> //声明一个模板,告诉编译器后面代码中紧跟着的T不要报错,T是一个通用的数据的数据类型
void mySwap(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10;
int b = 29;
cout << "交换前:" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
//利用函数模板交换两个数的值
//有两种方式使用函数模板
//1.隐式转换
mySwap(a, b);
//2.显示转换
//告诉编译器传入的数据类型是整型
mySwap<int>(a, b);
cout << "交换后:" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}