[转http://blog.csdn.net/Turntogo/archive/2007/12/27/1968848.aspx Turntogo's Blog]
C++的函数模板的使用方法:
template <class Type,int size>
Type min(const Type (&Array)[size])
{
Type min_value = Array[0];
for(int i=1;i<size;++i)
{
if(Array[i]<min_value) min_value=Array[i];
}
return min_value;
}
有了以上的函数模板,然后就可以使用min这个函数了:
int main()
{
float fa[5]={1.1,2.2,3.3,4.4,5.5};
int ia[]={1,2,3,4,5,6,7,8,9,0};
float fmin=min(fa);//(1)
int imin=min(ia);//(2)
return 0;
}
在(1)处,函数min()就根据模板变成了下面的样子:
float min(const float (&Array)[5])
{
float min_value=Array[0];
for(int i=1;i<5;++i)
if(Array[i]<min_value) min_value=Array[i];
return min_value;
}
在(2)处,函数min()就根据模板变成了下面的样子:
int min(const int (&Array)[10])
{
int min_value=Array[0];
for(int i=1;i<10;++i)
if(Array[i]<min_value) min_value=Array[i];
return min_value;
}
那个size尤其值得注意,它好像能自动感知数组的大小,这在以前要实现如此的功能可是非常困难的.