gpt4 book ai didi

c++ - 从 QByteArray 转换为 double 组

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:11 26 4
gpt4 key购买 nike

我有一个 double 的数组:

QVector<double> Y(count);

我需要打包到QByteArray通过以太网发送。

所以我做到了。这并不难:

QByteArray line;
line.clear();
line.append(QByteArray::fromRawData(reinterpret_cast<const char*>(Y.data()),
count*sizeof(double)));

我尝试使用此代码解压来自 QByteArray recv 的数据:

QVector<double> data((line.size())/sizeof(double));
QByteArray dou(sizeof(double),0x0);
for(int i = 0; i<data.count(); i++){
dou = recv.mid(i*sizeof(double),sizeof(double));
data[i] = *reinterpret_cast<const double*>(dou.data());
dou.clear();
}

但是我不喜欢。我想找到从 QByteArray 解压的优雅方式至 QVector<double>你能帮帮我吗?

最佳答案

你可以使用一个QDataStream,它将数据以二进制编码在a specific format.中。 (更具体地说,首先是项目数 (int32),然后是每个项目)

QVectoroverloads for the stream operators

QByteArray line;
QDataStream stream(&line, QIODevice::WriteOnly);
stream << y;

阅读:

QVector<double> data;
QDataStream stream(line);
stream >> data;

关于c++ - 从 QByteArray 转换为 double 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22479986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com