gpt4 book ai didi

c++ - 扩展作为内存传递的 vector 的大小

转载 作者:太空狗 更新时间:2023-10-29 23:34:49 25 4
gpt4 key购买 nike

我将我的 vector 传递给一个需要 c 数组的函数。它返回它填充的数据量(类似于 fread)。有没有一种方法可以告诉我的 vector 更改其大小以包含函数传入的数量?

当然,我要确保 vector 具有 capacity() 来保存该数量的数据。

最佳答案

不,没有支持的方法来“扩展” vector ,因此它包含直接复制的额外值。依靠“容量”来分配您可以写入的非大小内存绝对不是您应该做的事情靠。

您应该在调用函数之前调整大小,然后在之后调整到正确的值,以确保您的 vector 具有所需的空间量。例如

vector.resize(MAX_SIZE);
size_t items = write_array(&(vec[0]), MAX_SIZE)
vector.resize(items);

关于c++ - 扩展作为内存传递的 vector 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605539/

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