用c++编写一个求任意类型数组中最大元素和最小元素的程序,要求将最大元素和最小元素的函数设计成函数模板
时间: 2024-02-11 13:03:50 浏览: 33
好的,可以参考下面的代码实现:
```c++
#include <iostream>
#include <algorithm>
template<typename T>
T max_element(T arr[], int size) {
T max_val = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
}
}
return max_val;
}
template<typename T>
T min_element(T arr[], int size) {
T min_val = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < min_val) {
min_val = arr[i];
}
}
return min_val;
}
int main() {
int int_arr[] = {3, 1, 4, 1, 5, 9};
double double_arr[] = {3.14, 2.71, 1.41, 0.86};
int int_arr_size = sizeof(int_arr) / sizeof(int);
double double_arr_size = sizeof(double_arr) / sizeof(double);
int max_int = max_element(int_arr, int_arr_size);
int min_int = min_element(int_arr, int_arr_size);
double max_double = max_element(double_arr, double_arr_size);
double min_double = min_element(double_arr, double_arr_size);
std::cout << "max int: " << max_int << std::endl;
std::cout << "min int: " << min_int << std::endl;
std::cout << "max double: " << max_double << std::endl;
std::cout << "min double: " << min_double << std::endl;
return 0;
}
```
上述代码中,我们定义了两个函数模板 `max_element` 和 `min_element` 来分别求取任意类型数组中的最大值和最小值。通过模板参数 T,我们可以接受任意数据类型的数组作为函数的输入参数。在函数内部,我们使用类似于冒泡排序的方式遍历数组,找到最大值或最小值,最后返回这个值。
在主函数中,我们定义了两个数组:一个是 int 类型的数组,一个是 double 类型的数组。通过 `sizeof` 运算符和 `sizeof` 类型名,我们可以计算出数组的大小。然后分别调用 `max_element` 和 `min_element` 函数来求取这两个数组的最大值和最小值,最后输出结果即可。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)