用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序
时间: 2024-03-03 16:48:00 浏览: 85
下面是一个使用类模板对数组进行排序、查找和求元素和的示例程序:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
template <typename T>
class Array {
private:
T* arr;
int size;
public:
Array(int n) {
size = n;
arr = new T[size];
}
~Array() { delete[] arr; }
void input() {
cout << "Enter " << size << " elements: ";
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
void output() {
cout << "Array elements: ";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void sort() {
std::sort(arr, arr + size);
}
int search(T x) {
for (int i = 0; i < size; i++) {
if (arr[i] == x) {
return i;
}
}
return -1;
}
T sum() {
T s = 0;
for (int i = 0; i < size; i++) {
s += arr[i];
}
return s;
}
};
int main() {
Array<int> a(5);
a.input();
a.output();
a.sort();
a.output();
cout << "Sum of elements: " << a.sum() << endl;
int x;
cout << "Enter element to search: ";
cin >> x;
int index = a.search(x);
if (index != -1) {
cout << "Element found at index " << index << endl;
} else {
cout << "Element not found" << endl;
}
return 0;
}
```
该程序使用类模板 `Array` 对数组进行排序、查找和求元素和。在类模板中定义了私有成员变量 `arr` 和 `size`,分别表示数组的指针和长度。公有成员函数包括构造函数、析构函数、输入输出数组元素、对数组进行排序、查找元素和求元素和的函数。在 `main` 函数中,首先创建了一个 `Array<int>` 类型的对象 `a`,并使用 `input` 函数输入数组元素,然后输出数组元素,对数组进行排序,输出排序后的数组元素,并输出数组元素的和。接着输入要查找的元素,并使用 `search` 函数查找该元素是否在数组中,如果找到输出其下标,否则输出 "Element not found"。
阅读全文