使用类模板编写一程序,要求该程序可以对数组元素进行求和、求最大值操作;具体c代码
时间: 2024-09-15 12:15:31 浏览: 51
要实现一个C++程序,用于求一维数组的一般操作(如求和和求最大值),你可以创建一个模板类来通用地处理不同类型的数组。以下是一个简单的示例:
```cpp
#include <iostream>
#include <numeric>
// 定义一个模板类ArrayOperations,用于求和、求最大值
template <typename T>
class ArrayOperations {
public:
// 构造函数接收数组
explicit ArrayOperations(const T* arr, size_t size)
: arr(arr), size(size) {}
// 求和
T sum() const {
return std::accumulate(arr, arr + size, T{});
}
// 求最大值
T max_value() const {
return *std::max_element(arr, arr + size);
}
private:
const T* arr; // 数组指针
size_t size; // 数组长度
};
int main() {
// 示例:定义一个整数数组并创建操作对象
int numbers[] = {1, 2, 3, 4, 5};
ArrayOperations<int> array_operations(numbers, sizeof(numbers) / sizeof(numbers[0]));
// 打印数组的总和和最大值
std::cout << "Sum: " << array_operations.sum() << "\n";
std::cout << "Max Value: " << array_operations.max_value() << "\n";
return 0;
}
```
这个程序定义了一个`ArrayOperations`类模板,接受一个数组和其大小作为参数。它包含了`sum()`和`max_value()`成员函数,分别计算数组的和和最大值。
在`main()`函数中,我们实例化了一个`ArrayOperations`对象处理`numbers`数组,然后调用这两个函数展示结果。
阅读全文