C++模版】求数组中最大元素(函数模版)
时间: 2023-08-13 12:08:20 浏览: 54
以下是一个求取数组中最大元素的 C++ 函数模板:
```cpp
#include <iostream>
template <typename T, size_t N>
T max_element(T (&arr)[N]) {
T max = arr[0];
for (size_t i = 1; i < N; ++i) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int arr[] = {1, 3, 5, 2, 4};
std::cout << "The max element is: " << max_element(arr) << std::endl;
return 0;
}
```
该函数模板接受一个数组引用作为参数,使用循环遍历数组中所有元素,并比较它们的大小,最后返回最大的元素值。在调用时,可以传入不同类型的数组,如 `int`、`float`、`double` 等等。
相关问题
C++求数组元素之和—函数模板
好的,这是一个比较简单的问题,可以使用函数模板来实现。以下是示例代码:
```c++
#include <iostream>
#include <vector>
template<typename T>
T sum(const std::vector<T>& arr) {
T result = 0;
for (const auto& elem : arr) {
result += elem;
}
return result;
}
int main() {
std::vector<int> arr = {1, 2, 3, 4, 5};
std::cout << "Sum of array elements: " << sum(arr) << std::endl;
return 0;
}
```
这个函数模板可以接受任何类型的数组,只要该类型支持加法运算。在这个示例中,我们使用了一个 `std::vector` 来存储数组元素,但是你也可以使用普通的数组或者其他容器类型。
函数模板求数组中的最大数
可以使用函数模板和数组作为参数来实现求解数组中的最大数,具体代码如下:
```C++
#include <iostream>
using namespace std;
template <typename T>
T maxArray(T arr[], int len){
T maxNum = arr[0];
for(int i = 1; i < len; i++){
if(arr[i] > maxNum){
maxNum = arr[i];
}
}
return maxNum;
}
int main(){
int intArr[] = {3, 5, 2, 8, 1};
double doubleArr[] = {1.5, 2.7, 0.8, 3.9, 2.1};
cout << "The maximum number in int array is " << maxArray(intArr, 5) << endl;
cout << "The maximum number in double array is " << maxArray(doubleArr, 5) << endl;
return 0;
}
```
在上述代码中,我们定义了一个函数模板 `maxArray`,它接受两个参数,分别是数组 `arr` 和数组长度 `len`。在函数中,我们使用一个变量 `maxNum` 来存储数组中的最大数,然后遍历整个数组,如果当前元素比 `maxNum` 大,则将其赋值给 `maxNum`。最终,函数返回 `maxNum`。
在 `main` 函数中,我们定义了两个数组 `intArr` 和 `doubleArr`,分别包含整型和双精度浮点型数据。然后调用函数模板 `maxArray` 来求解这两个数组中的最大数,并输出结果。