我有一个字节数组,我想压缩。(平均400字节平均)。我有两个选项。我保留一个400字节的数组和填充位。最后说压缩大小是300字节所以我使用memcpy将这些字节复制到大小为300的数组并发送。 否则我可以保留一个向量并保留400字节并使用push_back。(这里我可以避免使用memcpy)。 我每秒钟获得大量数组。那么在性能关键的情况下哪个选择会带来更好的性能呢?
答案 0 :(得分:2)
如果它需要很快,你绝对不希望每个字节一次push_back
;您希望进行批量转移,例如memcpy
。但是你可以使用std::copy
,这应该同样有效。对于char
或int
这样的原始类型,将std::vector
与std::copy
一起使用基本上是原始数组和memcpy
之上的一层。