私はこの問題がコミュニティによって特定され、解決されるべきだと思っていましたが、間違ったキーワードで検索しているか、それほど難解です。ダイナミックサイズの構造体に使用するQt C++データコンテナはありますか?
問題は簡単です。動的データコンテナ(Vector、List、Queueなど)を定義する構造体を定義します。
#pragma pack(1)
struct Example
{
int foo;
QVector<int> bar;
};
私はこのベクトルに整数値を挿入(またはその他のQt/STLコンテナを取る)する必要があると私は、ファイルへの生データを書き込むためにバイト配列に、この構造体の内容をコピーします。 QVectorを指す普通のポインタであるため、
8
8
さて、これはおそらくです:
Example exstr;
qDebug()<<sizeof(exstr);
exstr.bar.push_back(12);
exstr.bar.push_back(5);
qDebug()<<sizeof(exstr);
それは値が表示されます。
私が遭遇したことは、私は次のコードを記述する場合ということです連続したデータが必要ですが、動的にサイズ変更可能なデータコンテナ(これは構造体のサイズを変更する)であり、シリアル化しようとするとバイト単位でコンテンツを使用できます。
ご協力ありがとうございます。
動的サイズのコンテナを出力する場合は、シリアル化ライブラリを使用するか、独自のロールを作成する必要があります。 – NathanOliver
ベクトルのバイト数を知りたいですか?これはあなたが求めているのでしょうか? – CroCo
@CroCoそれは私の原因を助けるが、私はまだシリアル化の問題があるので、完全に問題を解決することはありません。 しかし、誰かがコンテナに新しい要素を挿入するたびに "sizeof"の増加を見る方法を提案してくれれば、私は非常にうれしいです。 –