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

简单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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀