【问题标题】:Copy struct to vector将结构复制到向量
【发布时间】: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&lt;TheTypeOfMyStructure&gt;
  • 你可以这样做,但除非std::is_trivially_copyable&lt;MyStructure&gt;::value == true,否则复制数据的效用是极其有限的。

标签: c++ vector struct


【解决方案1】:

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

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

std::vector<unsigned char> myVector( ptr, ptr + sizeof myStructure );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-31
    • 2016-12-06
    • 2013-11-15
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多