Размер qvector () Возвращая Размер нуля

Эти 2 функции - моя попытка сериализации QVector. К сожалению, я не могу использовать QdataStream, потому что мой босс требует, чтобы реализация независима от Qt, и QdataStream добавляет заголовок. Таким образом, проблема в том, что вектор, возвращаемый функцией Bintovector, возвращает размер равен 0, но если элементы напечатаны, они равны исходному вектору. Почему размер возвращается равен нулю, если вектор имеет элементы, равные оригиналу? Эти функции сериализации в порядке? Я не могу использовать Boost ни Qt, чтобы реализовать его, только C ++;

QByteArray vectorToBin(const QVector<qint32> & vec)
{
  QByteArray result;
  foreach(quint32 e, vec) {
    char *src = reinterpret_cast<char*>(&e);
    result.append(src, sizeof(qint32));
  }
  return result;
}

QVector<qint32> binToVector(const QByteArray & bytes) 
{
  int size = sizeof(qint32);
  QVector<qint32> result;
  result.reserve(bytes.count()/size);
  int j=0;
  for(int i=0; i<bytes.count(); i+=size) {
    memcpy(&result[j++], bytes.constData()+i, size);
  }
  return result;
}
0
задан Humberto Pinheiro 14 September 2011 в 18:54
поделиться