c++写代码,用模板得出数组中的最大最小值
时间: 2024-10-16 11:03:49 浏览: 32
在C++中,你可以使用模板(Template)来创建通用函数,处理不同类型的数据,包括找出数组中的最大值和最小值。这里有一个简单的例子,展示了如何使用模板和STL库的`std::min`和`std::max`函数来找到整型数组的最大值和最小值:
```cpp
#include <algorithm> // 包含算法库,包含min和max函数
// 模板函数,用于寻找数组中的最大值和最小值
template<typename T>
pair<T, T> findMinMax(const T arr[], int n) {
if (n == 0) return make_pair(arr[0], arr[0]); // 如果数组为空,返回第一个元素
T minVal = arr[0];
T maxVal = arr[0];
for(int i = 1; i < n; ++i) {
minVal = std::min(minVal, arr[i]);
maxVal = std::max(maxVal, arr[i]);
}
return make_pair(minVal, maxVal);
}
// 示例使用
int main() {
int intArray[] = {5, 3, 9, 1, 7};
double doubleArray[] = {1.2, 3.4, 5.6, 7.8, 9.0};
pair<int, int> intResult = findMinMax(intArray, sizeof(intArray) / sizeof(int));
pair<double, double> doubleResult = findMinMax(doubleArray, sizeof(doubleArray) / sizeof(double));
std::cout << "Int array max/min: " << intResult.first << ", " << intResult.second << "\n";
std::cout << "Double array max/min: " << doubleResult.first << ", " << doubleResult.second << "\n";
return 0;
}
```
在这个示例中,`findMinMax`函数接受一个数组和其长度作为参数,并通过类型推导自动适应整型或双精度浮点数。对于每个类型的数组,它都会分别计算并返回最大值和最小值。
阅读全文