C++ 数组分配之后是memcpy还是带保留的向量?

C++ 数组分配之后是memcpy还是带保留的向量?,c++,arrays,vector,memcpy,C++,Arrays,Vector,Memcpy,我有一个要压缩的字节数组。(平均值为400字节)。我有两个选择。我保留一个400字节的数组,并在其中填充位。最后说压缩的大小为300字节,所以我使用memcpy将这些字节复制到一个300字节的数组并发送。 否则我可以保留一个向量并保留400字节,然后使用push_back(在这里我可以避免使用memcpy)。 我每秒得到大量数组。因此,在性能关键的场景中,哪种选择可以提供更好的性能?如果需要快速,您肯定不希望每次将每个字节向后推一次;您需要进行批量传输,就像memcpy所做的那样。但是你可以使用

我有一个要压缩的字节数组。(平均值为400字节)。我有两个选择。我保留一个400字节的数组,并在其中填充位。最后说压缩的大小为300字节,所以我使用memcpy将这些字节复制到一个300字节的数组并发送。 否则我可以保留一个向量并保留400字节,然后使用push_back(在这里我可以避免使用memcpy)。
我每秒得到大量数组。因此,在性能关键的场景中,哪种选择可以提供更好的性能?

如果需要快速,您肯定不希望每次将每个字节向后推一次;您需要进行批量传输,就像
memcpy
所做的那样。但是你可以使用,这应该是同样有效的。对于诸如
char
int
之类的基本类型,将
std::vector
std::copy
一起使用基本上是原始数组上的一层,而
memcpy

不清楚您想要做什么。假设你有一个向量,用
推回
填充它。那你用那个向量吗?如果已经有一个300个元素的数组,那么为什么要使用
memcpy
?如果每秒有大量数组,我个人更喜欢
resize
方法而不是
reserve
。它似乎更快。我必须发送压缩数组。因此我复制了压缩数据中的字节,而不是我分配用来保存它们的完整数组(因为我不知道apriori的大小)@polfsol