0

私はそのように定義された構造体を持っています:

    typedef struct {
    string mName;
    vector<int> mParts;
} AGroup;

この構造体のインスタンスをベクターに格納しています。これを HDF (v5) ファイルに書き込む必要があります。各インスタンスをループして最長の mName と最長の mPart を見つけ、可変長ではない新しい配列を作成して情報を保持し、その配列をファイルに書き込むことができると思います。

それが最善の方法ですか?いくつかのデータを書き込むだけでは非常に複雑に思えます。

4

1 に答える 1

1

可変長配列と文字列はオーバーヘッドをもたらします。ただし、データ構造をより正確に反映するため、これらも意味があります。可変長のC文字列と可変長の整数配列で構成される複合データ型を使用できます。

文字列とベクトルのサイズがすべて同じ上限に近い場合は、時間と手間を省き、固定長の文字列と配列を使用してください。

それはすべて、データセットのサイズによって異なります。ディスクスペースに関しては、可変長要素のオーバーヘッドと固定サイズ要素の無駄なスペースとの間にトレードオフがあり、試さずに見積もることは困難です。データセットが小さい場合は、より便利なことを行ってください。大きい場合は、スペースの浪費、データのセマンティクス、プログラミングの容易さなどを避け、この基準に従って最適化するなど、最も好きなものを選択してください。

于 2012-04-27T22:05:12.787 に答える