编写一个函数模板,求数组中的所有元素的最大值,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型和单精度型。
时间: 2024-03-23 14:35:56 浏览: 61
好的,以下是该函数模板的实现:
```cpp
template <typename T>
T getMax(T arr[], int size){
T max = arr[0];
for(int i=1; i<size; i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
```
这个函数模板接受一个数组和数组的大小作为参数,并返回数组中的最大值。现在,我们来看一下完整的程序,可以调用这个函数模板来计算整型数组和单精度型数组中的最大值:
```cpp
#include <iostream>
using namespace std;
template <typename T>
T getMax(T arr[], int size){
T max = arr[0];
for(int i=1; i<size; i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
int main(){
// 整型数组
int arr1[] = {1, 5, 8, 3, 2};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int max1 = getMax(arr1, size1);
cout << "Max value in integer array is: " << max1 << endl;
// 单精度型数组
float arr2[] = {1.2, 5.6, 8.9, 3.4, 2.1};
int size2 = sizeof(arr2) / sizeof(arr2[0]);
float max2 = getMax(arr2, size2);
cout << "Max value in float array is: " << max2 << endl;
return 0;
}
```
以上程序中,我们先定义了两个数组,一个是整型数组,一个是单精度型数组。然后通过调用 `getMax` 函数模板,分别计算了这两个数组中的最大值,并输出结果。注意,由于我们使用了函数模板,所以可以在不修改任何函数代码的情况下,轻松地处理不同类型的数组。
阅读全文