用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序。
时间: 2024-03-26 22:38:51 浏览: 94
好的,我可以为您提供一个使用类模板对数组进行排序、查找和求元素和的程序的示例代码。代码如下:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T, int size>
class Array {
private:
T arr[size];
public:
Array() {} // 默认构造函数
void input() { // 输入函数
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
void output() { // 输出函数
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void sort() { // 排序函数
std::sort(arr, arr + size);
}
T find(T value) { // 查找函数
for (int i = 0; i < size; i++) {
if (arr[i] == value) {
return i;
}
}
return -1;
}
T sum() { // 求和函数
T sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
};
int main() {
Array<int, 5> arr;
cout << "请输入五个整数:";
arr.input();
cout << "排序前的数组:";
arr.output();
arr.sort();
cout << "排序后的数组:";
arr.output();
cout << "请输入要查找的整数:";
int value;
cin >> value;
int index = arr.find(value);
if (index == -1) {
cout << "未找到该元素" << endl;
} else {
cout << "该元素在数组中的下标为:" << index << endl;
}
cout << "数组元素的和为:" << arr.sum() << endl;
return 0;
}
```
该程序使用类模板 `Array` 对一个大小为 `size` 的数组进行排序、查找和求元素和。其中,模板参数 `T` 表示数组元素类型,模板参数 `size` 表示数组大小。
在 `Array` 类中,我们定义了默认构造函数、输入函数、输出函数、排序函数、查找函数和求和函数。其中,输入函数和输出函数分别用于输入和输出数组元素,排序函数使用 `std::sort` 函数对数组元素进行排序,查找函数用于查找指定的元素在数组中的下标,如果没找到则返回 -1,求和函数用于计算数组元素的和。
在 `main` 函数中,我们使用 `Array<int, 5>` 定义了一个大小为 5 的整型数组 `arr`,并对其进行输入、排序、查找和求和操作。
阅读全文