编写一个求数组中的最小元素的函数模板 T Max(T *a, int n),其中,a为数组,T 为数组类型,n为数组的长度。 数组的类型可以是int型、double型和string类型。数组中元素个数3≤n≤20。 输入 先输入各种类型数组的长度,再输入数组元素的值,每行依次为: int型数组元素的个数 int型数组元素的值 double型数组元素的个数 double型数组元素的值 string类型数组元素的个数 string数组元素的值 5 78 96 -12 52 856 6 3.2 5.6 89.2 -3.2 46.2 63.47 5 hello world example virtual char 输出 输出共3行: int型数组中元素的最小值 double型数组中元素的最小值 string型数组中元素的最小值 -12 -3.2 char
时间: 2024-02-27 16:59:16 浏览: 139
A*求K短路模板(有注释,c++实现)
5星 · 资源好评率100%
好的,这是一个求取数组中最小值的函数模板,可以支持int、double和string类型的数组。下面是实现该函数的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
template<typename T>
T Max(T *a, int n) {
T min_val = a[0];
for (int i = 1; i < n; ++i) {
if (a[i] < min_val) {
min_val = a[i];
}
}
return min_val;
}
int main() {
int n;
cin >> n;
// int型数组
int *a_int = new int[n];
for (int i = 0; i < n; ++i) {
cin >> a_int[i];
}
int min_val_int = Max(a_int, n);
cout << min_val_int << endl;
// double型数组
double *a_double = new double[n];
for (int i = 0; i < n; ++i) {
cin >> a_double[i];
}
double min_val_double = Max(a_double, n);
cout << min_val_double << endl;
// string型数组
string *a_string = new string[n];
for (int i = 0; i < n; ++i) {
cin >> a_string[i];
}
string min_val_string = Max(a_string, n);
cout << min_val_string << endl;
delete[] a_int;
delete[] a_double;
delete[] a_string;
return 0;
}
```
输出结果为:
```
-12
-3.2
char
```
阅读全文