用c语言写一个vector
时间: 2023-02-27 16:28:18 浏览: 205
使用C语言实现vector动态数组的实例分享
c语言中不支持vector类型,不过可以通过使用数组来实现类似的效果。您可以使用以下代码来实现一个动态数组:
```
#include <stdio.h>
#include <stdlib.h>
#define INITIAL_CAPACITY 10
typedef struct {
int *data;
int size;
int capacity;
} Vector;
void init(Vector *vector) {
vector->capacity = INITIAL_CAPACITY;
vector->size = 0;
vector->data = malloc(sizeof(int) * vector->capacity);
}
void resize(Vector *vector) {
vector->capacity *= 2;
vector->data = realloc(vector->data, sizeof(int) * vector->capacity);
}
void push_back(Vector *vector, int value) {
if (vector->size == vector->capacity) {
resize(vector);
}
vector->data[vector->size++] = value;
}
void free_vector(Vector *vector) {
free(vector->data);
}
int main() {
Vector v;
init(&v);
for (int i = 0; i < 100; i++) {
push_back(&v, i);
}
for (int i = 0; i < v.size; i++) {
printf("%d ", v.data[i]);
}
free_vector(&v);
return 0;
}
```
这个代码实现了一个名为Vector的结构体,它由数据,大小和容量组成。使用了初始容量常量来初始化数组,并在必要时进行调整。您可以在push_back函数中将新元素添加到数组末尾,并使用free_vector函数释放数组使用的内存。
阅读全文