函数模板在实际程序中应用比较广泛,这是由于它本身的特性所决定的:定义一个函数体后,可以多次调用进行实例化。
例子:
#include<iostream> using namespace std; template <typename T,int size> //函数模板参数,包括类型参数T和数值参数size int find(T (&array)[size], T var) //定义查找函数:在T型数组array中查找元素var { for(int i=0;i<size;i++) { if(var == array[i]) return i+1; } return -1; } int main() { int a[5]={3,2,4,5,1}; double b[6]={1.0,2.1,3.2,4.3,5.4,6.5}; cout<<"整数1的位置:"<<find(a,1)<<endl; cout<<"浮点数4.3的位置: "<<find(b,4.3)<<endl; system("pause"); }
输出:
需要注意的是,数组前使用了运算符&,这是取地址符,在实参中传递数组的首地址即可。