复制矢量的一部分 成双变量

问题描述 投票:0回答:1

我有一个以vector<uint16>s为成员的对象列表。 这些向量基本上捕获与该对象相关的数据流。 数据流的长度范围为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()会成为一种解决这个问题的方法吗?或者有更好的方法吗?

为了清楚起见,数据的发起者也将值存储在双精度中,我收到的数据是该数据的存储器表示。

c++ std memcpy
1个回答
2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.