gpt4 book ai didi

c++ - 从未知大小 C++ 开始动态分配内存以更改数组大小

转载 作者:行者123 更新时间:2023-11-30 00:50:04 25 4
gpt4 key购买 nike

我如何动态分配一个大小会发生变化的数组,因为存储在数组中的内容将从文件中读取。有很多关于使用 vector 的建议,但我想知道如何以数组方式进行。

我知道内存分配是

int count;
int *n = new int[count];

假设变量 count 将在循环中递增。我将如何更改数组的大小?

此外,如果我们使用 malloc 来实现呢?

最佳答案

不要试图使数组分配完全符合您要存储的内容不断变化的大小要求。考虑使用传统的 2*N 倍数。当数组已满时,通过增长 2*N 重新分配(分配一个两倍大的新数组),然后复制项目。这会以对数方式摊销重新分配成本。

请记住,您打算用低级数组实现的逻辑正是 vector 存在的原因。您不太可能有效地或无错误地实现自己的。

但是,如果您坚持下去,请从实际情况(或最接近的 2 的倍数向上舍入)开始数 2 的倍数

关于c++ - 从未知大小 C++ 开始动态分配内存以更改数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26195868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com