我有一个成员向量std::vector<BYTE> memberVec
在内部成员函数中,我有一个std::vector
类型为bar
的结构,每个结构包含四个double
值。
我需要将内容fo std :: vector逐字节复制到std::vector<BYTE> foo
。
这就是我现在所做的,如果你向我展示更多C ++风格的方法,我将非常感激:
typedef struct{
double dX1, dY1, dX2, dY2;
}bar;
std::vector<bar> oBar;
//fill obar
memberVec.resize(oBar.size()*sizeof(double) * 4);
BYTE* pData = (BYTE*)&memberVec[i];
for (int i = 0; i < oBar.size(); i++)
{
memcpy(pData, &oBar[i].dX1, sizeof(double));
pData += sizeof(double);
memcpy(pData, &oBar[i].dY1, sizeof(double));
pData += sizeof(double);
memcpy(pData, &oBar[i].dX2, sizeof(double));
pData += sizeof(double);
memcpy(pData, &oBar[i].dY2, sizeof(double));
pData += sizeof(double);
}
答案 0 :(得分:1)
只是做:
memberVec.assign(reinterpret_cast<const char*>(oBar.data()),
reinterpret_cast<const char*>(oBar.data() + oBar.size()));