一个例子,没有模板调用的数值交换
还有char类型,longlong等等,如果传输的实参数据类型不一样,会很浪费时间和精力,因此template模板可以很好的解决问题 。
这个模板函数很好的解决了,当我们的传输实参值类型不定时运用它,可以方便快捷。
关于函数模板与普通函数的区别,换个说法就是,函数模板比较“轴”,认定一个东西不放手,这种精神值得学习,希望谈恋爱也能有这种精神(555)。
一下代码能很好的证明这个区别:
#include<bits/stdc++.h>
using namespace std;
template <class T>
int temp(T a,T b)
{
return a+b;
}
int temp(int a,int b)
{
return a+b;
}
int main()
{
int x=10;
char y='a';
temp(x,y);//这里程序机器会自动选择int temp(int a,int b)这个函数调用,而不选择模板函数
return 0;
}
而且普通函数及程序中第二个函数可以进行转化,即将字符类型自动转化为其ASCII值进行计算,要清楚的是,程序当导过去的实参,普通函数与模板函数同时满足的情况下,程序由优先考虑普通函数,后考虑模板函数。划重点!!!如果在同时满足的情况下还是想调用模板的话,那么就要在函数调用的语句前面加<>,上图代码中可以改成:temp<>(x,y)。