« innerHTML的使用Access denied for agent changed解决方法 »

C++的函数模板

[转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尤其值得注意,它好像能自动感知数组的大小,这在以前要实现如此的功能可是非常困难的.

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。