溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自定義C++ Array類以支持高效插入與刪除

發(fā)布時間:2024-07-19 13:00:06 來源:億速云 閱讀:94 作者:小樊 欄目:編程語言

下面是一個自定義的C++ Array類,支持高效插入和刪除操作:

#include <iostream>

class Array {
private:
    int* data; // 數(shù)組指針
    int size; // 數(shù)組大小
    int capacity; // 數(shù)組容量

public:
    // 構造函數(shù)
    Array(int initialCapacity = 10) {
        data = new int[initialCapacity];
        size = 0;
        capacity = initialCapacity;
    }

    // 析構函數(shù)
    ~Array() {
        delete[] data;
    }

    // 插入元素
    void insert(int element, int index) {
        if (index < 0 || index > size) {
            std::cout << "Invalid index" << std::endl;
            return;
        }

        // 如果數(shù)組已滿,則擴容
        if (size == capacity) {
            int newCapacity = capacity * 2;
            int* newData = new int[newCapacity];
            for (int i = 0; i < size; i++) {
                newData[i] = data[i];
            }
            delete[] data;
            data = newData;
            capacity = newCapacity;
        }

        // 將元素插入到指定位置
        for (int i = size; i > index; i--) {
            data[i] = data[i-1];
        }
        data[index] = element;
        size++;
    }

    // 刪除元素
    void remove(int index) {
        if (index < 0 || index >= size) {
            std::cout << "Invalid index" << std::endl;
            return;
        }

        // 將指定位置后的元素向前移動
        for (int i = index; i < size - 1; i++) {
            data[i] = data[i+1];
        }
        size--;
    }

    // 輸出數(shù)組元素
    void print() {
        for (int i = 0; i < size; i++) {
            std::cout << data[i] << " ";
        }
        std::cout << std::endl;
    }
};

int main() {
    // 創(chuàng)建一個Array對象
    Array arr(5);

    // 插入元素
    arr.insert(1, 0);
    arr.insert(2, 1);
    arr.insert(3, 2);
    arr.insert(4, 3);

    // 輸出數(shù)組元素
    arr.print();

    // 刪除元素
    arr.remove(2);

    // 輸出數(shù)組元素
    arr.print();

    return 0;
}

這個自定義的Array類實現(xiàn)了插入和刪除操作,當數(shù)組滿時會自動擴容,保證了數(shù)組的動態(tài)性。通過這個類,可以高效地進行插入和刪除操作。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

c++
AI