卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c中arraylist的用法

ArrayList是一種動(dòng)態(tài)數(shù)組結(jié)構(gòu),在C語(yǔ)言中可以通過(guò)自定義實(shí)現(xiàn)來(lái)模擬其功能。本文將詳細(xì)介紹C語(yǔ)言中ArrayList的用法,并提供示例代碼。 首先,我們需要定義一個(gè)結(jié)構(gòu)體來(lái)表示ArrayList

ArrayList是一種動(dòng)態(tài)數(shù)組結(jié)構(gòu),在C語(yǔ)言中可以通過(guò)自定義實(shí)現(xiàn)來(lái)模擬其功能。本文將詳細(xì)介紹C語(yǔ)言中ArrayList的用法,并提供示例代碼。

首先,我們需要定義一個(gè)結(jié)構(gòu)體來(lái)表示ArrayList:

typedef struct {
    int* data;  // 數(shù)據(jù)存儲(chǔ)的數(shù)組指針
    int size;   // 當(dāng)前元素個(gè)數(shù)
    int capacity; // 數(shù)組容量
} ArrayList;

接下來(lái),我們可以實(shí)現(xiàn)一些基本的操作函數(shù):

初始化ArrayList:

void init(ArrayList* list) {
    list->data  (int*)malloc(sizeof(int) * INITIAL_CAPACITY);  // 初始容量為INITIAL_CAPACITY
    list->size  0;
    list->capacity  INITIAL_CAPACITY;
}

添加元素:

void add(ArrayList* list, int element) {
    if (list->size  list->capacity) {
        int* newData  (int*)realloc(list->data, sizeof(int) * list->capacity * 2);  // 容量不足時(shí)進(jìn)行動(dòng)態(tài)擴(kuò)容
        if (newData  NULL) {
            printf("內(nèi)存分配失敗

");
            return;
        }
        list->data  newData;
        list->capacity * 2;
    }
    list->data[list->size  ]  element;
}

獲取元素:

int get(ArrayList* list, int index) {
    if (index < 0 || index > list->size) {
        printf("索引越界

");
        return 0;  // 可根據(jù)實(shí)際需求返回特定值
    }
    return list->data[index];
}

刪除元素:

void remove(ArrayList* list, int index) {
    if (index < 0 || index > list->size) {
        printf("索引越界

");
        return;
    }
    for (int i  index; i lt; list->size - 1; i  ) {
        list->data[i]  list->data[i   1];
    }
    list->size--;
}

除了上述基本操作外,我們還可以實(shí)現(xiàn)一些其他函數(shù),如判斷ArrayList是否為空、獲取ArrayList的大小等。

下面是一個(gè)使用ArrayList的示例:

int main() {
    ArrayList list;
    init(list);
    add(list, 1);
    add(list, 2);
    add(list, 3);
    for (int i  0; i lt; ; i  ) {
        printf("%d ", get(list, i));
    }
    printf("

");
    remove(list, 1);
    for (int i  0; i lt; ; i  ) {
        printf("%d ", get(list, i));
    }
    printf("

");
    return 0;
}

運(yùn)行上述代碼,輸出結(jié)果為:

1 2 3
1 3

通過(guò)以上示例,我們可以清楚地了解C語(yǔ)言中ArrayList的使用方法。希望本文能對(duì)讀者有所幫助。