ディスクからデータを読み込んで1000個のオブジェクトの配列を埋める必要があります。ただし、すべてのオブジェクトが終了するわけではありません。"空"配列ベクトルメンバーC++
アレイを宣言すると、メモリは1000個のオブジェクト用に予約されます。 私はそれらを1つずつ読むので、メモリを対応する値に設定します。しかし、メンバ#276のオブジェクトが存在しない可能性があり、配列の宣言時にそこにあったものにメモリが設定されたままになります。
配列の特定のメンバーが無効/存在しないという情報を保持するにはどうすればよいですか?
何とかメンバーのすべてのバイトをゼロに設定できましたが、有効なオブジェクトである可能性があります。
明白な解決策は、インデックスのオブジェクトが存在するかどうかに応じて1または0に設定される別のバイト配列を追加することですが、あまりエレガントではありません。
代わりにベクターでこれを行うことができますか?それは何とか空の値を格納することができますか?
'std :: pair
オブジェクトインスタンスの代わりにポインタを使用しますか? –
構造体やクラスのようにオブジェクトの配列であれば、デフォルトの構築済みオブジェクトを明確にセンチネル/空のオブジェクトにします。空白の理由がインデックス値を保持している場合は、オブジェクトの一部を作成するか、mapまたはunordered_mapのようなキー/値コンテナを使用して順序どおりに処理する必要があるかどうかを検討してください。 –