生成大型std :: vector的有效方法

时间:2015-02-08 00:31:28

标签: c++14 stdvector

我正在使用std::vector<char>填充数据(~100到1000MiB)std::ifstream::read()。我事先知道这个读取的大小,所以我可以构造那个大小的矢量。

然后,我继续读取文件,直到找到特定的分隔符。直到该分隔符的任何数据都将添加到向量中。最糟糕的情况是500KiB,通常很多

考虑到矢量的大小,我想知道这是否会导致昂贵的增长(和重新分配)。内存是一个问题,因为向量的大小应该与其构造的大小非常接近。

使用std :: vector :: reserve将矢量容量略微超出其初始大小是否是一个很好的解决方案,以便少量的额外数据不需要它增长?如果是这样,最好将向量构造为空,保留容量,然后将其调整为初始大小,对吗?

0 个答案:

没有答案