函数模板基本用法及泛型

函数模板

  • template < class / typename  T> 告诉编译器紧跟的代码里出现T不要报错
  • mySwap( T  &a  T  &b ) 类型也需要传入 ,类型参数化
  • myswap(a,b) 自动类型推导  按照a b的类型 来替换T
  • myswap<int>(a,b) 显示指定类型

实例:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

//类型不同,逻辑非常相似
//类型参数化-- 泛型编程  通过模板技术实现
template<class T>  //告诉编译器 下面如果出现T不要报错,T是泛型 
//template<typename T> //等同于上面class T
void mySwap(T& a, T& b)
{
    T tmp = a;
    a = b;
    b = tmp;
}
void test01()
{
    int a = 10;
    int b = 20;
    //1.自动类型推导 ,必须有参数类型才可以推导
    mySwap(a, b);
    //2.显示指定类型
    mySwap<int>(a, b);
}
int main()
{
    system("Pause");
    return 0;
}
原文地址:https://www.cnblogs.com/yifengs/p/15180232.html