c++函数模板
#include<iostream>using namespace std;
template <typename T>
T MAX(T*array,T n)
{
int j=0;
for(int i=1;i<n;i++)
{
if(array>array)
{
j=i;
}
}
return array;
};
int int_array[]={1,2,3,4,5,6};
double double_array[]={1.1,2.2,3.3,4.4,5.5,6.6};/////如果把double换成float,程序就会出问题
int main()
{
int iaver=MAX(int_array,6);
double faver=MAX(double_array,6.0);
cout<<"该整型数组的最大值是:"<<iaver<<endl;
cout<<"该单精度型数组的最大值是:"<<faver<<endl;
return 0;
}
求大神解惑! #include <iostream>
using namespace std;
template <typename T>
T MAX(T*array,T n)
{
int j=0;
for(int i=1;i<n;i++)
{
//if(array>array)
if(array>array) // 这样?
{
j=i;
}
}
return array;
};
int int_array[]={1,2,3,4,5,6};
float double_array[]={1.1,2.2,3.3,4.4,5.5,6.6};/////如果把double换成float,程序就会出问题
int main()
{
int iaver=MAX(int_array,6);
float faver=MAX(double_array,(float)6.0);
cout<<"该整型数组的最大值是:"<<iaver<<endl;
cout<<"该单精度型数组的最大值是:"<<faver<<endl;
return 0;
}
人造人 发表于 2021-6-18 17:23
#include
using namespace std;
可以了,可以了,可是我不懂为什么在6.0前加一个float就好了呢?
woshijunjun 发表于 2021-6-18 19:11
可以了,可以了,可是我不懂为什么在6.0前加一个float就好了呢?
因为 6.0 是 double 类型的
要强制转换成 float 类型
人造人 发表于 2021-6-18 19:15
因为 6.0 是 double 类型的
要强制转换成 float 类型
好的,谢谢啦!
页:
[1]