将 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 样式数组中第一个元素的指针。
我有一个包含 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 样式数组中第一个元素的指针。