用c++编写一个使用类模板对数组进行排序,查找和求元素和的程序的程序
时间: 2023-12-10 08:38:27 浏览: 124
以下是使用类模板对数组进行排序,查找和求元素和的C++程序:
```c++
#include <iostream>
template <typename T>
class Array {
private:
T* arr;
int size;
public:
Array(int s) : size(s) {
arr = new T[size];
}
~Array() {
delete[] arr;
}
void input() {
std::cout << "Enter " << size << " elements: ";
for (int i = 0; i < size; i++) {
std::cin >> arr[i];
}
}
void sort() {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void search(T key) {
bool flag = false;
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
std::cout << key << " is found at index " << i << std::endl;
flag = true;
break;
}
}
if (!flag) {
std::cout << key << " is not found in the array." << std::endl;
}
}
T sum() {
T total = 0;
for (int i = 0; i < size; i++) {
total += arr[i];
}
return total;
}
void display() {
std::cout << "Array elements are: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
};
int main() {
Array<int> arr(5);
arr.input();
arr.sort();
arr.display();
arr.search(3);
std::cout << "Sum of array elements is: " << arr.sum() << std::endl;
return 0;
}
```
在这个程序中,我们使用了一个类模板 `Array`,它有以下成员函数:
- `Array(int s)`:构造函数,它初始化数组的大小。
- `~Array()`:析构函数,它释放动态分配的内存。
- `void input()`:输入数组元素。
- `void sort()`:对数组进行排序。
- `void search(T key)`:在数组中查找给定元素。
- `T sum()`:计算数组元素的总和。
- `void display()`:显示数组元素。
我们还在 `main` 函数中创建了一个 `Array<int>` 对象,并调用了上述成员函数来操作数组。此外,你可以根据需要修改 `Array` 类,以支持其他类型的数组元素。
阅读全文