C ++のビットストリームの効率的な読み取り/書き込み

c++ libraries
C ++のビットストリームの効率的な読み取り/書き込み

データ圧縮ライブラリを作成していますが、整数のエンコードのシーケンスを(さまざまな整数エンコーダーで)メモリに書き込み、ファイルに保存してから、それらすべてを後で読み取る必要があります。

整数エンコーディングは連続して保存する必要があります。 一般に、ビット単位のサイズは8の倍数ではないため、メモリ内で整列させることはできません。

要するに、私が必要なのは、次のような機能を公開するものです。

unsigned int BitReader::read_bits(size_t bits);
unsigned int BitWriter::write_bits(unsigned int num, size_t bits);
void BitWriter::get_array(char** array);
BitReader::BitReader(char *array);

これらの関数を(非常に)タイトなループで呼び出す必要があるため、効率が最も重要です(特に読み取り)。

私がしたいことをするC ++ライブラリを知っていますか? ありがとう。

  3  0


ベストアンサー

効率が唯一の要件である場合、データのストレージのアドレスを取得し、ストレージに直接書き込みます。 次に、復元時に同じストレージを割り当て、逆の操作を実行します。 シンプルで高速で、学習曲線もありません。

0


大量のデータに対しては効率的ではありませんが、あらゆる入出力にストリームを開くことが最も効果的です。 ストリームは、読み取り/書き込み操作を実行するポータブルな方法を提供するため、メモリまたはディスクでストリームを開くことができます。 ディスク自体へのストリームを制御したい場合は、_bios_disk関数google “_bios_disk”を使用することをお勧めします。

-1


タイトルとURLをコピーしました