编写一个求任意类型数组中最大元素和最小元素的程序,要求将求 最大元素和最小元素的函数设计成函数模板
时间: 2024-05-04 21:20:59 浏览: 107
计算二维数组周边元素之和
下面是一个求任意类型数组中最大元素和最小元素的程序,其中使用了函数模板实现:
```c++
#include <iostream>
template<typename T>
void find_max_min(T arr[], int size, T& max_val, T& min_val) {
max_val = arr[0];
min_val = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
}
if (arr[i] < min_val) {
min_val = arr[i];
}
}
}
int main() {
int int_array[] = { 1, 2, 3, 4, 5 };
double double_array[] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
int max_int, min_int;
double max_double, min_double;
find_max_min(int_array, 5, max_int, min_int);
find_max_min(double_array, 5, max_double, min_double);
std::cout << "Max int: " << max_int << ", Min int: " << min_int << std::endl;
std::cout << "Max double: " << max_double << ", Min double: " << min_double << std::endl;
return 0;
}
```
在这个程序中,`find_max_min` 函数是一个函数模板,它可以处理任意类型的数组。该函数接受一个数组,数组的大小,以及两个引用参数 `max_val` 和 `min_val`,用于返回最大值和最小值。在函数中,我们使用一个循环遍历数组,更新最大值和最小值。在 `main` 函数中,我们分别使用 `int` 和 `double` 类型的数组调用 `find_max_min` 函数,并输出最大值和最小值。
阅读全文