用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序。
时间: 2024-03-02 22:54:01 浏览: 73
好的,以下是使用类模板对数组进行排序、查找和求元素和的程序:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T, int size>
class Array {
private:
T data[size];
public:
void sort() {
std::sort(data, data + size);
}
int find(const T& target) {
for (int i = 0; i < size; i++) {
if (data[i] == target) {
return i;
}
}
return -1; // 没找到
}
T sum() {
T result = 0;
for (int i = 0; i < size; i++) {
result += data[i];
}
return result;
}
void print() {
for (int i = 0; i < size; i++) {
cout << data[i] << " ";
}
cout << endl;
}
T& operator[](int index) {
return data[index];
}
};
int main() {
Array<int, 6> arr1 = {5, 4, 3, 2, 1, 6};
arr1.sort();
arr1.print();
cout << arr1.find(3) << endl;
cout << arr1.sum() << endl;
Array<double, 4> arr2 = {1.1, 2.2, 3.3, 4.4};
arr2[2] = 5.5;
arr2.sort();
arr2.print();
cout << arr2.find(5.5) << endl;
cout << arr2.sum() << endl;
return 0;
}
```
上面的程序定义了一个类模板Array,模板参数包括数组元素类型T和数组大小size。Array类提供了sort()方法对数组进行排序、find()方法查找目标元素的下标、sum()方法求所有元素的和、print()方法打印数组以及重载了下标运算符[]以便访问数组元素。
我们可以用以下代码测试Array类模板:
输出结果应该为:
```
1 2 3 4 5 6
2
21
1.1 2.2 4.4 5.5
3
13.2
```
阅读全文