将struct复制到vector

Mar*_*les 4 c++ struct vector

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

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
Run Code Online (Sandbox Code Playgroud)

有没有最快的方法允许我将结构复制myStruct到vector myVector而不通过数组buf

Col*_*mbo 6

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

auto const ptr = reinterpret_cast<unsigned char*>(&myStructure);

std::vector<unsigned char> myVector( ptr, ptr + sizeof myStructure );
Run Code Online (Sandbox Code Playgroud)