模板 :分为函数模板和类模板
在C++中允许我们将处理问题的逻辑从不同的数据类型中抽离出来形成容器和算法
当我们需要对某种数据进行存储和处理的时候,我们可以在程序中选择合适的模板指向我们需要的数据类型,这时候编译器就会为我们生产适合这种数据类型的数据容器和算法函数
1函数模板
template<typename T>
T abs(T x){
return x<0?-x:x;
}
使用函数模板时有两种方式
- 自动类型推到调用 Swap(a, b) ( 根据实参对参数类型进行推导
- 具体类型显示调用 Swap<int>(a, b) (显示的指定参数类型)
2类模板
声明:
template<模板参数表>
class 类名
{
}
定义:
template<模板参数表>
类型名 类名<模板参数表>::函数名(参数表 )
初始化对象
类名<指定的类型参数>对象名
使用类模板
类模板必须显示的指定参数类型