#include <iostream>
#include <algorithm>
using namespace std;

template <typename T>
class DynamicArray {
private:
    T* data;
    int size;
public:
    DynamicArray(int s = 10) {
        data = new T[s];
        size = s;
    }
    ~DynamicArray() {
        delete[] data;
    }
    void resize(int s) {
        T* newData = new T[s];
        int minSize = min(s, size);
        for (int i = 0; i < minSize; i++)
            newData[i] = data[i];
        delete[] data;
        data = newData;
        size = s;
    }
    T& operator[](int index) {
        return data[index];
    }
    int getSize() {
        return size;
    }
    T get(int index) {
        return data[index];
    }
    void set(int index, T value) {
        data[index] = value;
    }
    T getMax() {
        T max = data[0];
        for (int i = 1; i < size; i++) {
            if (data[i] > max)
                max = data[i];
        }
        return max;
    }
    T getMin() {
        T min = data[0];
        for (int i = 1; i < size; i++) {
            if (data[i] < min)
                min = data[i];
        }
        return min;
    }
};

int main() {
    DynamicArray<int> arr(5);
    arr[0] = 1;
    arr[1] = 3;
    arr[2] = 2;
    arr[3] = 5;
    arr[4] = 4;
    cout << 'Array size: ' << arr.getSize() << endl;
    cout << 'Array[2]: ' << arr.get(2) << endl;
    arr.set(2, 6);
    cout << 'Array[2]: ' << arr.get(2) << endl;
    cout << 'Array max: ' << arr.getMax() << endl;
    cout << 'Array min: ' << arr.getMin() << endl;
    return 0;
}

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

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