用c++编写一个使用类模板对数组进行排序,查找,元素求和的程序
时间: 2023-12-10 19:38:26 浏览: 45
以下是一个使用类模板对数组进行排序,查找和元素求和的C++程序:
```c++
#include <iostream>
#include <algorithm>
template<typename T, int size>
class Array {
private:
T arr[size];
public:
void input() {
std::cout << "Enter " << size << " elements:" << std::endl;
for (int i = 0; i < size; i++) {
std::cin >> arr[i];
}
}
void sort() {
std::sort(arr, arr + size);
}
int search(T key) {
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
return i;
}
}
return -1;
}
T sum() {
T total = 0;
for (int i = 0; i < size; i++) {
total += arr[i];
}
return total;
}
void display() {
std::cout << "Array Elements: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
};
int main() {
Array<int, 5> arr; // 定义一个包含5个整数的数组
arr.input();
arr.display();
std::cout << "Sum of array elements: " << arr.sum() << std::endl;
arr.sort();
std::cout << "Array elements after sorting: ";
arr.display();
int key;
std::cout << "Enter element to search: ";
std::cin >> key;
int index = arr.search(key);
if (index != -1) {
std::cout << key << " found at index " << index << std::endl;
} else {
std::cout << key << " not found in array" << std::endl;
}
return 0;
}
```
在这个程序中,我们定义了一个 `Array` 类模板,它有两个类型参数:`T` 表示数组元素的类型,`size` 表示数组的大小。在类中,我们定义了一些用于对数组进行排序、查找和求和的成员函数。
在 `main` 函数中,我们首先创建了一个 `Array` 类型的对象 `arr`,并通过调用 `input` 函数从标准输入中读入了数组元素。然后,我们调用了 `display` 函数来显示数组元素,`sum` 函数来计算元素的总和,`sort` 函数来对数组进行排序,`search` 函数来查找指定元素。最后,我们输出了查找结果。