编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。
时间: 2023-06-24 18:07:45 浏览: 133
基于数组模板类的排序操作
以下是一个使用数组类模板Array对数组进行排序、求最大值和求元素和的示例程序:
```c++
#include <iostream>
#include "Array.h" // Array类模板的头文件
using namespace std;
int main()
{
const int SIZE = 5;
int arr[SIZE] = { 10, 8, 2, 6, 4 };
// 使用Array类模板创建数组对象
Array<int> intArr(arr, SIZE);
// 排序
intArr.sort();
// 输出排序后的数组
cout << "Sorted array: ";
intArr.print();
// 求最大值
int maxVal = intArr.max();
// 输出最大值
cout << "Max value: " << maxVal << endl;
// 求元素和
int sum = intArr.sum();
// 输出元素和
cout << "Sum of elements: " << sum << endl;
return 0;
}
```
其中,Array类模板的定义如下:
```c++
#ifndef ARRAY_H
#define ARRAY_H
template <typename T>
class Array
{
private:
T* arr; // 指向数组首元素的指针
int size; // 数组大小
public:
// 构造函数:使用已有数组创建Array对象
Array(T* arr, int size)
{
this->arr = new T[size];
this->size = size;
for (int i = 0; i < size; i++)
{
this->arr[i] = arr[i];
}
}
// 析构函数
~Array()
{
delete[] arr;
}
// 排序
void sort()
{
for (int i = 0; i < size - 1; i++)
{
for (int j = i + 1; j < size; j++)
{
if (arr[j] < arr[i])
{
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
// 求最大值
T max()
{
T maxVal = arr[0];
for (int i = 1; i < size; i++)
{
if (arr[i] > maxVal)
{
maxVal = arr[i];
}
}
return maxVal;
}
// 求元素和
T sum()
{
T sum = 0;
for (int i = 0; i < size; i++)
{
sum += arr[i];
}
return sum;
}
// 输出数组元素
void print()
{
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
};
#endif
```
示例程序的输出如下:
```
Sorted array: 2 4 6 8 10
Max value: 10
Sum of elements: 30
```
阅读全文