C++ 中vector
时间: 2023-12-23 21:03:52 浏览: 106
C中没有内置的vector类型,但可以使用数组来实现类似的功能。在C中,您可以声明一个动态大小的数组,并使用指针进行访问。下面是一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int size;
int* data;
} Vector;
void init(Vector* vec, int size) {
vec->size = size;
vec->data = (int*)malloc(size * sizeof(int));
}
void push_back(Vector* vec, int value) {
vec->size++;
vec->data = (int*)realloc(vec->data, vec->size * sizeof(int));
vec->data[vec->size - 1] = value;
}
int main() {
Vector vec;
init(&vec, 0);
push_back(&vec, 10);
push_back(&vec, 20);
push_back(&vec, 30);
for (int i = 0; i < vec.size; i++) {
printf("%d ", vec.data[i]);
}
free(vec.data);
return 0;
}
```
在上面的示例中,我们使用了一个自定义的Vector结构体来保存动态数组的大小和数据。通过init函数初始化Vector,通过push_back函数向Vector中添加元素,并通过指针访问Vector的数据。请注意,在使用完动态数组后,我们需要使用free函数释放内存以避免内存泄漏。
这只是一个简单的示例,真正完整和高效的动态数组实现需要更多的细节和功能。如果您在实际项目中需要使用动态数组,建议使用现有的动态数组库,如GLib的GArray或C++的vector。
阅读全文