用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序
时间: 2024-03-06 21:51:34 浏览: 94
好的,下面是一个使用类模板对数组进行排序、查找和求元素和的程序的示例:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
template <typename T, int size>
class Array {
private:
T data[size];
public:
// 构造函数
Array() {}
// 添加元素到数组
void add(T value, int index) {
data[index] = value;
}
// 对数组进行排序
void sort() {
std::sort(data, data + size);
}
// 查找元素
int find(T value) {
for (int i = 0; i < size; i++) {
if (data[i] == value)
return i;
}
return -1;
}
// 求元素和
T sum() {
T sum = 0;
for (int i = 0; i < size; i++) {
sum += data[i];
}
return sum;
}
// 输出数组
void print() {
for (int i = 0; i < size; i++) {
cout << data[i] << " ";
}
cout << endl;
}
};
int main() {
Array<int, 5> arr;
// 添加元素到数组
arr.add(5, 0);
arr.add(2, 1);
arr.add(9, 2);
arr.add(1, 3);
arr.add(3, 4);
// 输出原始数组
cout << "Original array: ";
arr.print();
// 排序数组
arr.sort();
// 输出排序后的数组
cout << "Sorted array: ";
arr.print();
// 查找元素
int index = arr.find(9);
if (index == -1) {
cout << "Element not found" << endl;
} else {
cout << "Element found at index " << index << endl;
}
// 求元素和
int sum = arr.sum();
cout << "Sum of elements: " << sum << endl;
return 0;
}
```
这个程序使用了类模板 `Array`,它有一个私有成员 `data`,用于存储数组元素。程序提供了四个公有成员函数:
- `add`:添加元素到数组。
- `sort`:对数组进行排序。
- `find`:查找元素在数组中的位置。
- `sum`:求数组元素的和。
程序还提供了一个 `print` 函数,用于输出数组元素。
在 `main` 函数中,我们首先创建了一个 `Array` 对象,并使用 `add` 函数添加了五个元素。然后,我们输出了原始数组,对数组进行排序,输出排序后的数组,查找数组中的元素 9 的位置,求数组元素的和,并输出结果。
运行程序,输出如下:
```
Original array: 5 2 9 1 3
Sorted array: 1 2 3 5 9
Element found at index 4
Sum of elements: 20
```
希望这个示例程序对您有所帮助!
阅读全文