У меня есть массив double
:Преобразовать из QByteArray в массив двойных
QVector<double> Y(count);
Мне нужно упаковать его QByteArray
отправить через Ethernet.
Так что я сделал это. Это было не слишком трудно:
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>
Вы можете мне помочь?
Примечание: это не просто не изящно, но и хрупко и не переносит. –