我有一个对象列表,其中有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()
是解决这个问题的方法吗?还是有更好的方法来做到这一点?
需要明确的是,数据的创建者也将值存储为双精度值,我收到的数据是该数据的内存表示形式。
答案 0 :(得分:2)
内部向量成员函数调用data()可能在这里解决了您的问题:
memcpy(&formatted_data, data.data(), sizeof(double));
std::vector::data()
返回一个指针,该指针指向内部维护的c样式数组中指定矢量的第一个元素。