如何在C中编写自己的向量结构

问题描述

||                                                                                                                       

解决方法

        您正在寻找“动态数组”实现。 您既要跟踪数组中当前有多少个对象,又要为其分配多少空间。当您需要更多空间时,请致电
realloc
,并要求
current_size * factor
,其中
factor
大于1。
factor
的典型值在1.4和2之间。 可以证明,将“ 4”项追加到数组的摊销成本为O(n)。 请注意,如果您想在中间插入内容,这样做效率不高。那是另一种生物。     ,        
vector = malloc(sizeof(struct vector_new))
vector->start = malloc(size);
vector->count = size;
我不确定您到底要什么。 顺便说一句,std :: vector具有\“ used \”大小和\“ allocated \”大小,这是您在此处不再赘述的语义。 我也同意,您不太可能比std :: vector编写速度更快。可能有理由使用C而不是C ++,但这不是其中之一。     ,        我不确定我是否理解您的问题,但这是您要查找的内容:
vector_new vec;
vec.count = 10;
vec.start = malloc(vec.count);