函数模板
一般形式如下:
template <typename type> ret-type func-name(parameter list)
{
// 函数主体
}
在这里,"type"是函数所使用的数据类型的占位符名称。这个名称可以在函数定义中使用。
template <typename T>
inline T const& Max(T const& a, T const& b)
{
return a < b ? b : a;
}
类模板
泛型类声明的一般形式如下:
template <class type> class class-name
{
...
}
在这里 “type” 是占位符类型名称,可以在类被实例化的时候进行指定。您可以使用一个都好分隔的列表来定义多个泛型数据类型。
到处都有见到的一对尖括号 “<>”,有自己用过的
hash_map<int, string>
有刚刚发现的
vector<int>
大概就是每个元素指定为什么类型