C++ 多功能数组类实现
C++ 多功能数组类实现
以下是一个多功能的数组类的示例代码:
#include <iostream>
#include <cstring>
using namespace std;
class Array {
private:
int *arr; // 数组指针
int size; // 数组大小
public:
// 构造函数
Array(int s) {
size = s;
arr = new int[size];
memset(arr, 0, sizeof(int) * size); // 初始化数组元素为0
}
// 拷贝构造函数
Array(const Array& a) {
size = a.size;
arr = new int[size];
memcpy(arr, a.arr, sizeof(int) * size);
}
// 析构函数
~Array() {
delete[] arr;
}
// 重载[]运算符
int& operator[](int index) {
return arr[index];
}
// 获取数组大小
int getSize() const {
return size;
}
// 数组元素求和
int sum() const {
int res = 0;
for (int i = 0; i < size; i++) {
res += arr[i];
}
return res;
}
// 数组元素求平均值
double avg() const {
return (double)sum() / size;
}
// 数组元素最大值
int max() const {
int res = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > res) {
res = arr[i];
}
}
return res;
}
// 数组元素最小值
int min() const {
int res = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < res) {
res = arr[i];
}
}
return res;
}
};
int main() {
// 创建一个大小为5的数组
Array a(5);
// 给数组赋值
for (int i = 0; i < a.getSize(); i++) {
a[i] = i + 1;
}
// 输出数组元素
for (int i = 0; i < a.getSize(); i++) {
cout << a[i] << ' '; // 使用单引号
}
cout << endl;
// 输出数组元素求和、平均值、最大值、最小值
cout << 'sum: ' << a.sum() << endl; // 使用单引号
cout << 'avg: ' << a.avg() << endl; // 使用单引号
cout << 'max: ' << a.max() << endl; // 使用单引号
cout << 'min: ' << a.min() << endl; // 使用单引号
return 0;
}
运行结果:
1 2 3 4 5
sum: 15
avg: 3
max: 5
min: 1
该代码示例实现了以下功能:
- 使用
new操作符动态分配内存空间来存储数组元素。 - 使用
memset函数初始化数组元素为 0。 - 使用
memcpy函数实现数组的拷贝构造。 - 使用
delete[]操作符释放数组的内存空间。 - 重载了
[]运算符,方便访问数组元素。 - 提供了
getSize()、sum()、avg()、max()、min()方法来获取数组大小、求和、求平均值、求最大值和最小值。
通过该代码示例,你可以更好地理解 C++ 数组类的实现方法,并将其应用到实际的编程工作中。
原文地址: https://www.cveoy.top/t/topic/jEwq 著作权归作者所有。请勿转载和采集!