C++模板是一个强大的通用性工具,其用法为template <typename T>
这个语法允许我们传入非固定的类型并且根据这个类型进行程序编写

C++模板分为两种模板: 函数模板类模板

函数模板

你定义一个通用的函数,其中一个或多个参数的类型是泛型(用一个占位符表示),而不是固定的类型,例如intdouble。当你在代码中调用这个函数时,编译器会根据你传入的参数类型自动推断并实例化(instantiate)出一个具体的函数版本。

template<typename T> 
void swapT(T &a, T &b){
	T temp;
	temp = a;
	b = a;
	a = temp;
}

类模板

和函数模板类似,在 class 前声明模板就可以传入特定的类型,同时也可以使用template<typename T1,typename T2 ...> 来声明多个类型,在调用类的时候就需要输入多个类型

template <typename T1, typename T2, typename T3>
class ppair
{
private:
public:
    T1 _first;
    T2 _second;
    T3 _third;
    ppair(const T1 &a, const T2 &b, const T3 &c)
    {
        _first = a;
        _second = b;
        _third = c;
    }
};

上面就是一个简单的三元组实现