|
分類:[C/C++]
C++を使い、大きいファイルを読み込もうとしています。 しかし、そのファイルの仕様上、決められた構造体をループによって取得するとなると、 数千万回〜数億回のループ処理が必要になります。(可能性として数十億回のループ処理もあり得る) そこで、この取得する部分を単純な while や for によらず高速に処理できる方法はないものかと思い質問しました。
ファイルの仕様についてはおおよそ以下のような形です。
================ ---- File Header (50bytes) // 不要 捨てる部分 ---- Bolck Header #1 (10bytes) // 不要 ---- Data #1 (30bytes) // ここのデータのみ欲しい ---- Block Header #2 ---- Data #2
... 以下 Block Header と Data の繰り返し ================
一応、コードとして書けていませんが、 1. ifstream で開き、不要な 50bytes 分進める 2. Block Header と Data を含んだ構造体で EOF になるまで読み込み 3. vector あたりに 2 の構造体を保持
という手順が思いついていますが、上記にも書いた通り、ループ数が多いので悩んでいます。
|