将 vector<UINT16> 的一部分复制到 double 变量中

Copying a section of a vector<UINT16> into a double variable

我有一个包含 vector<uint16> 个成员的对象列表。
这些向量本质上是捕获与该对象相关的数据流。
数据流的长度范围为 16 - 256 位。

我有兴趣将该向量的一部分分割成 double 个变量。

IE:

vector<uint16> data = { 00FA, 78BB, FFFF, 1234, 6C9D, ..., n }
double formatted_data = ( data from spot 0 to spot 3 )

memcpy()std::copy() 是解决此问题的方法吗?或者有更好的方法吗?

需要说明的是,数据的发起者也以双精度存储值,我收到的数据是该数据的内存表示。

内部向量成员函数调用 data() 可能会解决您的问题:

memcpy(&formatted_data, data.data(), sizeof(double));

std::vector::data() returns 指向指定向量的内部维护的 c 样式数组中第一个元素的指针。