c++编写一个模板函数,实现10个数据的输入,返回10个数中值最大值的。并对int,float,char数据类型进行验证
时间: 2024-09-19 12:10:07 浏览: 37
基于C++,编写一个程序求一组整数的中值
在C++中,你可以使用模板函数来创建一个通用的算法,用于找到不同类型数组中的最大值。这里是一个简单的例子:
```cpp
#include <iostream>
using namespace std;
// 模板函数 findMax
template<typename T>
T findMax(T arr[], int size) {
// 验证输入的数据类型
static_assert(std::is_arithmetic<T>::value, "Input type must be arithmetic (int, float, char).");
if(size == 0) return T{}; // 如果数组为空,返回默认类型的空值
T maxVal = arr[0]; // 假设第一个元素是最大的
for(int i = 1; i < size; ++i) {
if(arr[i] > maxVal) { // 更新最大值
maxVal = arr[i];
}
}
return maxVal;
}
int main() {
int intArr[] = {1, 5, 3, 8, 2};
float floatArr[] = {2.5, 4.7, 1.1, 6.9, 3.3};
char charArr[] = {'a', 'e', 'c', 'o', 'b'};
cout << "Max integer: " << findMax<int>(intArr, 5) << endl;
cout << "Max float: " << findMax<float>(floatArr, 5) << endl;
cout << "Max char: " << findMax<char>(charArr, 5) << endl;
return 0;
}
```
这个`findMax`模板函数会检查传入的类型是否为基本数值类型(如int、float、char),然后遍历数组找到最大值并返回。
阅读全文