如何解决如何在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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。