使用类模板编写一程序,要求该程序可以对数组元素进行求和、求最大值操作;通过一个int型数组和double型数组的实例进行测试。具体c++代码
时间: 2024-09-15 12:15:23 浏览: 129
在C++中,你可以创建一个通用的模板类来处理不同类型的数组,包括求和和求最大值的操作。以下是一个简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 使用这个头文件包含了max函数
// 定义一个通用模板类ArrayProcessor
template <typename T>
class ArrayProcessor {
public:
// 构造函数接收一个数组作为参数
ArrayProcessor(T* arr, int size) : array(arr), size(size) {}
// 求和方法
T sum() {
T total = 0;
for (int i = 0; i < size; ++i) {
total += array[i];
}
return total;
}
// 求最大值方法
T max_value() {
return *std::max_element(array, array + size);
}
private:
T* array; // 数组指针
int size; // 数组长度
};
int main() {
// 示例一:int型数组
int intArr[] = {1, 2, 3, 4, 5};
ArrayProcessor<int> intProcessor(intArr, sizeof(intArr) / sizeof(int));
std::cout << "Sum of int array: " << intProcessor.sum() << "\n";
std::cout << "Max value in int array: " << intProcessor.max_value() << "\n";
// 示例二:double型数组
double doubleArr[] = {1.1, 2.2, 3.3, 4.4, 5.5};
ArrayProcessor<double> doubleProcessor(doubleArr, sizeof(doubleArr) / sizeof(double));
std::cout << "Sum of double array: " << doubleProcessor.sum() << "\n";
std::cout << "Max value in double array: " << doubleProcessor.max_value() << "\n";
return 0;
}
```
上述代码首先定义了一个`ArrayProcessor`模板类,接受任意类型`T`的数组并提供求和和求最大值的方法。在`main`函数中,分别对`int`和`double`类型的数组进行了测试。
阅读全文