编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。
时间: 2023-06-19 10:04:58 浏览: 136
汇编程序 求数组元素的最大值和最小值
4星 · 用户满意度95%
下面是一个使用函数模板求任意类型数组中最大元素和最元素的程序:
```cpp
#include <iostream>
template <typename T>
T maxElement(T arr[], int size)
{
T max = arr[0];
for (int i = 1; i < size; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
return max;
}
template <typename T>
T minElement(T arr[], int size)
{
T min = arr[0];
for (int i = 1; i < size; i++)
{
if (arr[i] < min)
{
min = arr[i];
}
}
return min;
}
int main()
{
int arr1[] = {1, 2, 3, 4, 5};
double arr2[] = {1.1, 2.2, 3.3, 4.4, 5.5};
char arr3[] = {'a', 'b', 'c', 'd', 'e'};
std::cout << "Max element in arr1: " << maxElement(arr1, 5) << std::endl;
std::cout << "Min element in arr1: " << minElement(arr1, 5) << std::endl;
std::cout << "Max element in arr2: " << maxElement(arr2, 5) << std::endl;
std::cout << "Min element in arr2: " << minElement(arr2, 5) << std::endl;
std::cout << "Max element in arr3: " << maxElement(arr3, 5) << std::endl;
std::cout << "Min element in arr3: " << minElement(arr3, 5) << std::endl;
return 0;
}
```
输出结果为:
```
Max element in arr1: 5
Min element in arr1: 1
Max element in arr2: 5.5
Min element in arr2: 1.1
Max element in arr3: e
Min element in arr3: a
```
在这个程序中,我们定义了两个函数模板 `maxElement` 和 `minElement`,它们可以接受任意类型的数组和数组大小作为参数。在函数体内,我们使用类似于常规的数组遍历的方式,找到数组中的最大值和最小值,并返回它们。在 `main` 函数中,我们分别使用 `int`、`double` 和 `char` 类型的数组来测试这两个函数模板,输出它们的最大元素和最小元素。
阅读全文