帮我写一个C++类模板,实现对数组的求和与排序
时间: 2024-02-25 18:59:35 浏览: 69
好的,下面是一个C++类模板,可以实现对数组的求和与排序:
```c++
#include <iostream>
#include <algorithm>
template<typename T, int N>
class Array {
public:
Array() {}
T sum(T arr[]) {
T s = 0;
for (int i = 0; i < N; i++) {
s += arr[i];
}
return s;
}
void sort(T arr[]) {
std::sort(arr, arr + N);
}
};
```
该类模板定义了一个数组模板类 Array,其中 T 表示数组元素的数据类型,N 表示数组的大小。该类模板提供了两个成员函数:
- sum:用于求该数组的元素和,需要传入一个 T 类型的数组,返回该数组的元素和。
- sort:用于对该数组进行排序,需要传入一个 T 类型的数组,直接对该数组进行排序。
使用该类模板时,只需要将需要操作的数组作为参数传入即可:
```c++
int main() {
int arr[5] = {5, 2, 8, 1, 9};
Array<int, 5> a;
std::cout << "sum: " << a.sum(arr) << std::endl; // 输出 sum: 25
a.sort(arr);
std::cout << "sort: ";
for (int i = 0; i < 5; i++) {
std::cout << arr[i] << " "; // 输出 sort: 1 2 5 8 9
}
std::cout << std::endl;
return 0;
}
```
阅读全文