鱼C论坛

 找回密码
 立即注册
查看: 1411|回复: 4

[已解决]c++函数模板

[复制链接]
发表于 2021-6-18 16:53:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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[i]>array[j])
                {
                        j=i;
                }
        }
        return array[j];
};
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;
}
求大神解惑!
最佳答案
2021-6-18 17:23:40
#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])
        if(array[i]>array[j])   // 这样?
        {
            j=i;
        }
    }
    return array[j];
};
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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-18 17:23:40 | 显示全部楼层    本楼为最佳答案   
#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])
        if(array[i]>array[j])   // 这样?
        {
            j=i;
        }
    }
    return array[j];
};
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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-18 19:11:50 | 显示全部楼层
人造人 发表于 2021-6-18 17:23
#include

using namespace std;

可以了,可以了,可是我不懂为什么在6.0前加一个float就好了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-18 19:15:47 | 显示全部楼层
woshijunjun 发表于 2021-6-18 19:11
可以了,可以了,可是我不懂为什么在6.0前加一个float就好了呢?

因为 6.0 是 double 类型的
要强制转换成 float 类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-18 19:17:46 | 显示全部楼层
人造人 发表于 2021-6-18 19:15
因为 6.0 是 double 类型的
要强制转换成 float 类型

好的,谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 14:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表