鱼C论坛

 找回密码
 立即注册

C++Primer Plus 第六版编程练习8.8-6

已有 376 次阅读2015-7-6 22:18 |个人分类:c++Primer Plus 第6版编程练习笔记| Plus

#include <iostream>
#include <cstring>

using namespace std;

template<typename T>
T maxn(T num[] , int n) ;

template<> char * maxn(char *num[] ,int n) ; //显式具体化
int main()
{
    //测试
    int num1[6] ={1,2,3,4,5,6} ;
    double num2[4]={8.8,7.7,6.6,5.5} ;
    char *num3[3]={"father","dad","mother"};
    cout<<"整形数组中的最大值是:"<<maxn(num1,6)<<endl ;
    cout<<"浮点型形数组中的最大值是:"<<maxn(num2,4)<<endl ;
    cout<<"字符串数组中最长的是:"<<maxn(num3,3)<<endl ;
    return 0 ;
}

template<typename T>
T maxn(T num[] , int n)
{
    T maxt =num[0] ;
    for(int i=1 ;i<n;i++)
    {
        if(num[i]>maxt)
            maxt=num[i] ;
    }    
    return maxt ;
}

template<> char * maxn(char *num[] ,int n) //显式具体化
{
    char *p = num[0] ;
    for(int i=1;i<n ;i++)
    {
        if(strlen(num[i])>strlen(p))
        {
            p=num[i] ;
        }
    }
    return p ;
}

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

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

GMT+8, 2025-7-14 02:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部