将结构体复制到vector

Copy struct to vector

本文关键字:vector 复制 结构体      更新时间:2023-10-16

假设我有一个各种数据类型的结构,我想将每个字节复制到一个向量中。我这样做:

vector<unsigned char> myVector;                                     // get a vector
unsigned char buf[sizeof myStructure];                              // get an array
memcpy(&buf, &myStructure, sizeof myStructure);                     // copy struct to array
myVector.insert(myVector.begin(), buf, buf + sizeof myStructure);   // copy array to vector

是否有一种最快的方法可以让我将结构体myStruct复制到矢量myVector而不通过数组buf ?

您可以尝试使用迭代器对构造函数:

auto const ptr = reinterpret_cast<unsigned char*>(&myStructure);
std::vector<unsigned char> myVector( ptr, ptr + sizeof myStructure );