永发信息网

(2) 编写重载函数max,分别返回字符数组,int数组,long数组,float数组,double数组和字符串数组的最大元素。

答案:1  悬赏:70  手机版
解决时间 2021-06-09 01:25
  • 提问者网友:却不属于对方
  • 2021-06-08 18:20
编写重载函数max,分别返回字符数组,int数组,long数组,float数组,double数组和字符串数组的最大元素。
最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-06-08 18:41
#include <iostream>
using namespace std;

template <class T>
T max( T* beg, T* end )
{
T tmp = *beg;
while ( ++beg != end )
if ( tmp < *beg )
tmp = *beg;
return tmp;
}

template <>
char* max( char** beg, char** end )
{
char* tmp = *beg;
while ( ++beg != end )
if ( strcmp( tmp, *beg ) < 0 )
tmp = *beg;
return tmp;
}

#define P( msg, a ) { \
cout << #msg":\t" \
<< max( a, a + sizeof( a ) / sizeof( a[0] ) ) << endl; }

int main()
{
char a[] = "123abcdefg465ABC";
int b[] = { 6,3,9,2,1,5,8,7,0,4 };
long c[] = { 0,2,9,8,4,5,8,7,1,2 };
float d[] = { 4,3,6,5,2,1,5,4,7,9 };
double e[] = { 6,9,3,1,2,5,4,7,4,8 };
char* f[] = { "this", "is", "an", "example" };
P( char, a )P( int, b )P( long, c )
P( float, d )P( double, e )P( char*, f)
}



运行截图:



我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯