【发布时间】:2014-07-21 02:04:21
【问题描述】:
假设我有各种数据类型的结构,我想复制向量中的每个单个字节。我这样做:
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?
【问题讨论】:
-
为什么不直接插入
myStructure? IE。使用std::vector<TheTypeOfMyStructure>。 -
你可以这样做,但除非
std::is_trivially_copyable<MyStructure>::value == true,否则复制数据的效用是极其有限的。