编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。
时间: 2024-05-06 15:16:24 浏览: 83
以下是一个C++的示例代码:
```c++
#include<iostream>
using namespace std;
template<typename T>
T max_element(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 min_element(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 intArr[] = {1, 2, 3, 4, 5};
float floatArr[] = {1.1, 2.2, 3.3, 4.4, 5.5};
cout<<"Max element in intArr: "<<max_element(intArr, 5)<<endl;
cout<<"Min element in intArr: "<<min_element(intArr, 5)<<endl;
cout<<"Max element in floatArr: "<<max_element(floatArr, 5)<<endl;
cout<<"Min element in floatArr: "<<min_element(floatArr, 5)<<endl;
return 0;
}
```
在上面的代码中,我们定义了两个函数模板 `max_element` 和 `min_element`,用于求任意类型数组中的最大元素和最小元素。这两个函数模板使用了模板参数 `typename T`,这表示我们可以在调用函数时将任何类型的数组作为参数传递给这些函数。
在 `main` 函数中,我们定义了一个整数类型的数组 `intArr` 和一个浮点数类型的数组 `floatArr`。我们分别调用了 `max_element` 和 `min_element` 函数,并将结果输出到控制台。运行这个程序,我们可以得到以下输出:
```
Max element in intArr: 5
Min element in intArr: 1
Max element in floatArr: 5.5
Min element in floatArr: 1.1
```
从输出结果中可以看出,我们的函数模板可以正确地求出任意类型数组中的最大元素和最小元素。
阅读全文