用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序。
时间: 2024-03-03 07:47:13 浏览: 72
用c++实现一个类模板
好的,以下是一个简单的使用类模板对数组进行排序、查找和求元素和的程序示例:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T>
class Array {
private:
T *data;
int size;
public:
Array(int s) : size(s) {
data = new T[size];
}
~Array() {
delete[] data;
}
void sort() {
std::sort(data, data + size);
}
T sum() {
T s = 0;
for (int i = 0; i < size; i++) {
s += data[i];
}
return s;
}
int find(T val) {
for (int i = 0; i < size; i++) {
if (data[i] == val) {
return i;
}
}
return -1;
}
T& operator[](int index) {
return data[index];
}
};
int main() {
Array<int> a(5);
a[0] = 2;
a[1] = 4;
a[2] = 1;
a[3] = 5;
a[4] = 3;
a.sort();
cout << "Sorted Array: ";
for (int i = 0; i < 5; i++) {
cout << a[i] << " ";
}
cout << "\nSum of Array Elements: " << a.sum() << endl;
int val = 3;
int index = a.find(val);
if (index == -1) {
cout << "Element " << val << " not found in Array" << endl;
} else {
cout << "Element " << val << " found at index " << index << endl;
}
return 0;
}
```
在这个示例中,我们定义了一个名为 `Array` 的类模板,它具有以下公共方法:
- 构造函数 `Array(int s)`:用于创建一个大小为 `s` 的数组;
- 析构函数 `~Array()`:用于释放数组内存;
- 排序方法 `sort()`:用于对数组进行排序;
- 求和方法 `sum()`:用于求出数组中所有元素的和;
- 查找方法 `find(T val)`:用于查找数组中是否存在值为 `val` 的元素,如果存在返回该元素的索引,否则返回-1;
- 重载运算符 `[]`:用于访问数组元素。
在 `main()` 函数中,我们创建了一个 `Array<int>` 类型的对象 `a`,并为其赋值。然后,我们使用 `sort()` 方法对数组进行排序,使用 `sum()` 方法求出数组元素的和,使用 `find(T val)` 方法查找元素值为 `val` 的元素的索引。最后,我们输出了排序后的数组、数组元素的和以及查找结果。
希望这个示例能够帮助你理解如何使用类模板对数组进行排序、查找和求元素和。
阅读全文