兰秋葭月 2021-05-21 18:19 采纳率: 85.7%
浏览 81
已采纳

简单c++模板题求指导

设计一个函数模板max_of_array( ),该函数从一个数组中找出其中的最大元素,数组中存放元素的类型可能是多种多样的(如:int、float、double、char、char*)。

题目说明:

1) 声明一个函数模板max_of_array,用来处理基本数据类型int、float、double、char

template <class TYPE>

TYPE max_of_array(TYPE A[], int len) ;

2) 定义一个max_of_array的特殊版本,用来处理字符串类型

char*  max_of_array(char * Strs[], int len);

#include <iostream>
using namespace std;
template <class TYPE>
TYPE max_of_array(TYPE a[], int len){
	int max=0;
	for(int i=0;i<len;i++){
		if(a[i]>a[max])
			max=i;
		}
	
	return a[max];
}
char*  max_of_array(char * a[], int len){
	int max=0;
	for(int i=0;i<len;i++){
		if(a[i]>a[max])
			max=i;
		}
	
	cout<<"char*:";
	return a[max];
}
int main() {
	int a[5]={1,9,8,7,5};
	char x[7]={'a','D','o','c','j','K','k'};
    cout<<max_of_array<int>(a,5)<<endl ;
    cout<<max_of_array<char>(x,7)<<endl;
	cout<<max_of_array(x,7);

怎么去调用char*的那个函数啊,我试图调用它的时候各种报错

 

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-05-21 19:22
    关注

    char* max_of_array(char * a[], int len)这里,char* a[]说明a是一个char*的指针数组,就是说a中的元素都是char*类型的指针,不是你想要的char类型,所以你的函数处理是错误的。

    调用的方式为:cout<<max_of_array<char>(&x,7)<<endl;

    如有帮助,请采纳一下,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私