编写一个类模板对数组元素进行遍历输出,数组求和的函数程序
时间: 2024-05-01 22:21:49 浏览: 129
好的,下面是对应的类模板和函数程序:
```c++
#include <iostream>
#include <numeric>
template<typename T, size_t N>
class Array {
private:
T data[N];
public:
Array(std::initializer_list<T> list) {
std::copy(list.begin(), list.end(), data);
}
void print() {
for (size_t i = 0; i < N; ++i) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
}
T sum() {
return std::accumulate(data, data + N, static_cast<T>(0));
}
};
int main() {
Array<int, 5> a{1, 2, 3, 4, 5};
a.print();
std::cout << "sum = " << a.sum() << std::endl;
return 0;
}
```
这里使用了类模板 `Array` 对数组进行操作,其中:
- 构造函数使用了 C++11 新特性中的 `std::initializer_list`,允许使用花括号 `{}` 进行数组初始化;
- `print()` 函数使用循环对数组元素进行遍历输出;
- `sum()` 函数使用了 `<numeric>` 头文件中的 `std::accumulate` 函数,对数组求和。
在主函数中,我们实例化了一个 `Array<int, 5>` 类型的数组,使用 `print()` 和 `sum()` 函数分别进行遍历输出和求和,并输出结果。
阅读全文