C++模版】求数组中最大元素(函数模版)
时间: 2023-08-13 09:08:20 浏览: 105
以下是一个求取数组中最大元素的 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++编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板
好的,我来为您解答。以下是代码实现:
```cpp
#include <iostream>
using namespace std;
template<class T>
void max_min(T arr[], int size, T& max_val, T& min_val) {
max_val = 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_arr[] = { 3, 5, 2, 7, 1 };
double double_arr[] = { 3.5, 1.2, 6.7, 2.1, 9.8 };
int int_max, int_min;
double double_max, double_min;
max_min(int_arr, 5, int_max, int_min);
max_min(double_arr, 5, double_max, double_min);
cout << "Int array max: " << int_max << endl;
cout << "Int array min: " << int_min << endl;
cout << "Double array max: " << double_max << endl;
cout << "Double array min: " << double_min << endl;
return 0;
}
```
在这个程序中,我们使用了函数模板 `max_min` 来求解任意类型的数组中最大和最小元素。函数模板定义了一个类型为 `T` 的数组 `arr`,一个整数 `size`,以及两个引用类型的变量 `max_val` 和 `min_val`。函数的实现方式是遍历数组中的元素,比较它们的大小,将最大值和最小值分别存储在 `max_val` 和 `min_val` 变量中。
在 `main` 函数中,我们分别用 `int` 类型和 `double` 类型的数组测试了 `max_min` 函数。我们将求得的最大值和最小值分别存储在 `int_max`、`int_min`、`double_max` 和 `double_min` 变量中,并在控制台中输出。
阅读全文