帮我写一个C++类模板,实现对数组的求和与排序
时间: 2023-12-03 17:47:05 浏览: 58
好的,以下是一个实现对数组求和与排序的C++类模板:
```
template <typename T, int n>
class Array {
private:
T arr[n];
public:
Array() {}
// 求数组中所有元素的和
T sum() {
T sum = arr[0];
for (int i = 1; i < n; i++) {
sum += arr[i];
}
return sum;
}
// 对数组进行升序排序
void sort() {
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[i]) {
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
// 重载下标运算符,以便访问数组中的元素
T& operator[](int index) {
return arr[index];
}
// 获取数组长度
int size() {
return n;
}
};
```
使用示例:
```
int main() {
Array<int, 5> arr;
arr[0] = 3;
arr[1] = 1;
arr[2] = 4;
arr[3] = 2;
arr[4] = 5;
// 求和
int sum = arr.sum();
cout << "sum: " << sum << endl;
// 排序
arr.sort();
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果:
```
sum: 15
1 2 3 4 5
```
这个模板类可以对任何类型的数组进行求和与排序,只需要将模板类的类型参数T替换为自己想要使用的数据类型即可。