使用 memcpy 直接将数据复制到 std::vector 是否合法?像这样:
char buf[255];
FillBuff(buf);
std::vector<char> vbuf;
vbuf.resize(255)
memcpy(vbuf.data(), &buf, 255);
最佳答案
要回答您的问题,是的,它确实有效但是这是由于 std::vector<char>
的实现所致.
对于非 POD 类型和 std::vector
的类型具有影响内存布局的特定模板特化(std::vector<bool>
),它将不起作用。这就是为什么你应该使用 std::copy
,无论如何它都会正确运行。
如@user4581301所述,memcpy
可能是不必要的,因为你可以对待 std::vector:: data()
当你做 char* buffer
.
关于c++ - Memcpy 数据直接存入 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64298802/