中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

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

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

#include <iostream>

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

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

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

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

        // 如果數組已滿,則擴容
        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--;
    }

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

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

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

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

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

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

    return 0;
}

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

向AI問一下細節

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

c++
AI

衡山县| 武安市| 壶关县| 宿松县| 合山市| 海原县| 临夏县| 德昌县| 隆安县| 鄂伦春自治旗| 东至县| 耿马| 永兴县| 大石桥市| 博湖县| 远安县| 北川| 新郑市| 吐鲁番市| 赤峰市| 靖江市| 湘潭市| 甘泉县| 涞水县| 海门市| 庄河市| 通榆县| 枣阳市| 福鼎市| 苍山县| 静安区| 潞城市| 香格里拉县| 武胜县| 华蓥市| 招远市| 抚顺县| 临高县| 通州市| 小金县| 双辽市|