编写一个函数模板,求数组中的所有元素的最大值,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型和单精度型。
时间: 2024-03-08 18:47:51 浏览: 70
好的,我来为您编写这个函数模板和完整程序。代码如下:
```cpp
#include <iostream>
#include <algorithm>
template <typename T>
T getMax(T arr[], int size)
{
T maxVal = arr[0];
for(int i = 1; i < size; i++)
{
if(arr[i] > maxVal)
{
maxVal = arr[i];
}
}
return maxVal;
}
int main()
{
int arr1[] = {1, 5, 3, 7, 2};
float arr2[] = {1.1f, 5.5f, 3.3f, 7.7f, 2.2f};
int size1 = sizeof(arr1) / sizeof(int);
float size2 = sizeof(arr2) / sizeof(float);
std::cout << "Max value in arr1: " << getMax(arr1, size1) << std::endl;
std::cout << "Max value in arr2: " << getMax(arr2, size2) << std::endl;
return 0;
}
```
这个程序定义了一个函数模板 `getMax`,它可以接受一个任意类型的数组和数组大小作为参数,并返回数组中的最大值。在 `main` 函数中,我们定义了两个数组 `arr1` 和 `arr2`,其中一个是整型数组,另一个是单精度浮点型数组,然后我们通过调用 `getMax` 函数模板来获取数组中的最大值。由于我们已经定义了数组的类型和大小,所以编译器会自动推断出函数模板的模板参数类型,从而实例化出对应类型的函数。最后,程序输出了两个数组的最大值。
阅读全文