从十六进制数组读取双精度到向量



我使用以下代码使用 fread 从文件中读取数据

vector<double> table;
table.resize(10);
fread(&table[0],table.size()*sizeof(double), 1, fp);

但是现在我有一个十六进制值的数组中的数据

喜欢

const unsigned char data[] = {0x50,0x11,0x12,......};

我知道从哪里读取数据的索引,

int Index = 100;

那么如何从输入数组中读取双精度类型的数据并填充向量呢?

可能最简单的方法是使用旧的 C mem* 函数:

memcpy(&table[0], &data[Index], table.size() * sizeof(double));

您可以在数据周围使用内存流,因此反序列化的相同代码可以处理打开的文件、内存或任何流。

最新更新