国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

c中arraylist的用法

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

ArrayList是一種動態(tài)數(shù)組結構,在C語言中可以通過自定義實現(xiàn)來模擬其功能。本文將詳細介紹C語言中ArrayList的用法,并提供示例代碼。

首先,我們需要定義一個結構體來表示ArrayList:

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

接下來,我們可以實現(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);  // 容量不足時進行動態(tài)擴容
        if (newData  NULL) {
            printf("內存分配失敗

");
            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ù)實際需求返回特定值
    }
    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--;
}

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

下面是一個使用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;
}

運行上述代碼,輸出結果為:

1 2 3
1 3

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