数组分配后跟memcpy或带保留的向量?

时间:2016-05-28 05:10:06

标签: c++ arrays vector memcpy

我有一个字节数组,我想压缩。(平均400字节平均)。我有两个选项。我保留一个400字节的数组和填充位。最后说压缩大小是300字节所以我使用memcpy将这些字节复制到大小为300的数组并发送。 否则我可以保留一个向量并保留400字节并使用push_back。(这里我可以避免使用memcpy)。 我每秒钟获得大量数组。那么在性能关键的情况下哪个选择会带来更好的性能呢?

1 个答案:

答案 0 :(得分:2)

如果它需要很快,你绝对不希望每个字节一次push_back;您希望进行批量转移,例如memcpy。但是你可以使用std::copy,这应该同样有效。对于charint这样的原始类型,将std::vectorstd::copy一起使用基本上是原始数组和memcpy之上的一层。