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++ 数组类的实现方法,并将其应用到实际的编程工作中。

C++ 多功能数组类实现

原文地址: https://www.cveoy.top/t/topic/jEwq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录