【发布时间】:2011-06-06 21:27:17
【问题描述】:
这里我有一个指向第一个元素的指针和一个 int 来保存元素的数量。如何添加 malloc 和 calloc 进行内存分配?
struct vector_new
{
char *start;
int count;
}
【问题讨论】:
-
std::vector 是如何低效的?看看 std::vector 代码它会告诉你答案
-
你将不会比
std::vector更有效率。部分原因是std::vector与原始指针相比没有开销。在最好的情况下,你会一样好。技术上不可能变得更好。 -
作为一般规则,您可以超越标准库的几率非常低,因为已经投入了大量工作以使其更快。
-
@duffymo(和其他人):问题标题和标签表明提问者使用的是 C,而不是 C++。
-
C 确实提供了一个优势:如果您使用
realloc来扩展您的分配,那么可能您将避免使用new和@ 所必需的副本987654326@。因此,虽然复杂性不会更好,但从实际的角度来看,您可以仍然得到显着的改进。
标签: c optimization vector