问题描述
||
解决方法
您正在寻找“动态数组”实现。
您既要跟踪数组中当前有多少个对象,又要为其分配多少空间。当您需要更多空间时,请致电
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);