模板函数问题2
#include<iostream.h>
template <class Type, int size>
Type min( Type (&r_array)[size] )
{
Type min_val = r_array[0];
for ( int i = 1; i < size; ++i )
if ( r_array[i] < min_val )
min_val = r_array[i];
return min_val;
}
// size 没有指定——ok
// size = 初始化表中的值的个数
int ia[] = { 10, 7, 14, 3, 25 };
double da[6] = { 10.2, 7.1, 14.5, 3.2, 25.0, 16.8 };
int main()
{
// 为5 个int 的数组实例化min()
// Type => int, size => 5
int minimum1 = min( ia );
if ( minimum1 != 3 )
cout << "warning: integer min() failed\n";
else
cout << "ok: integer min() worked\n"
<<"The minimum is:"<<minimum1<<endl;
// 为 6 个 double 的数组实例化 min()
// Type => double, size => 6
double minimum2 = min( da );
if ( minimum2 != 3.2 )
cout << "warning: double min() failed\n";
else
cout << "ok: double min() worked\n"
<<"The minimum is:"<<minimum2<<endl;;
return 0;
}
这个模板函数算是刚才那个的一个变形,但这个怎么不对呢,谢谢指点