使用类模板编写一程序,要求该程序可以对数组元素进行求和、求最大值操作;通过一个int型数组和double型数组的实例进行测试。
时间: 2024-09-11 18:08:01 浏览: 41
java代码-定义一个一维数组,求出数组的最大值,最小值,平均值。
5星 · 资源好评率100%
要实现这个需求,你可以按照以下步骤进行:
1. 定义一个通用的数组类模板`A<T>`,其中`T`是一个类型参数,代表数组的元素类型。包括私有成员变量(如数组本身`a[]`)和长度`m_len`。
```cpp
template <typename T>
class A {
private:
T a[maxsize];
int m_len;
public:
// 其他成员函数...
};
```
2. 实现`A`类的方法,比如求和、求最大值、排序、倒置、查找等功能。这里以求和和求最大值为例,因为题目未指定排序和查找的具体实现,但它们通常是遍历数组的过程。
```cpp
template <typename T>
void A<T>::sum() {
T total = 0;
for (int i = 0; i < m_len; ++i) {
total += a[i];
}
cout << "Sum of elements: " << total << endl;
}
template <typename T>
T findMax(A<T>& arr) {
T maxVal = arr.a[0];
for (int i = 1; i < arr.m_len; ++i) {
if (arr.a[i] > maxVal) {
maxVal = arr.a[i];
}
}
return maxVal;
}
// 示例:求整型数组和双精度数组的总和与最大值
int main() {
A<int> intArray(5, {1, 2, 3, 4, 5});
intArray.sum();
cout << "Max value in int array: " << findMax(intArray) << endl;
double doubleArray(5, {1.1, 2.2, 3.3, 4.4, 5.5});
doubleArray.sum();
cout << "Max value in double array: " << findMax(doubleArray) << endl;
return 0;
}
```
阅读全文