当前位置:  开发笔记 > 编程语言 > 正文

扩展作为内存传递的向量的大小

如何解决《扩展作为内存传递的向量的大小》经验,为你挑选了1个好方法。

我将我的向量传递给期望ac数组的函数.它返回它填充的数据量(类似于fread).有没有办法可以告诉我的矢量改变它的大小以包括函数传递的数量?

当然,我确保向量具有容量()来保存该数据量.



1> Andrew Grant..:

不,没有支持的方法来"扩展"一个向量,因此它包含直接复制的额外值.依靠"容量"来分配你可以写入的非大小内存绝对不是你应该依赖的东西.

您应该在调用函数之前通过调整大小来确保向量具有所需的空间量,然后再调整大小为正确的值.例如

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

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有