c++写函数返回数组中最大和最小的元素
时间: 2024-10-19 11:04:07 浏览: 36
在C++中,你可以创建一个函数来找到数组中的最大和最小元素。这里提供一个简单的例子,使用C++标准库中的`minmax_element`函数结合`std::pair`来获取结果:
```cpp
#include <algorithm>
#include <iostream>
#include <climits> // 包含 INT_MAX 和 INT_MIN 用于初始值
// 函数模板,返回给定整型数组的最大和最小元素
template <typename T>
std::pair<T, T> findMinMax(T arr[], int size) {
if (size <= 0) {
throw std::invalid_argument("数组大小无效");
}
auto result = std::make_pair(arr[0], arr[0]); // 初始假设第一个元素既是最大又是最小
std::pair<T, T> minMax = *result; // 使用引用防止复制
// 使用算法查找范围内的最小和最大值
std::minmax_element(arr, arr + size, std::inout_result(minMax));
return minMax;
}
int main() {
int myArray[] = {5, 2, 9, 1, 7};
int arraySize = sizeof(myArray) / sizeof(myArray[0]);
std::pair<int, int> maxMin = findMinMax(myArray, arraySize);
std::cout << "数组中的最小元素是: " << maxMin.first << ", 最大元素是: " << maxMin.second << "\n";
return 0;
}
```
这个`findMinMax`函数接受一个整数数组和其大小,然后使用`std::minmax_element`找到数组中的最小和最大元素,并将结果封装到一个`std::pair`中返回。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![text/x-c++; charset=iso-8859-1](https://img-home.csdnimg.cn/images/20250102104920.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)