2

C++ で文字列を圧縮し、その圧縮状態をコンソールに表示したいと思っていました。何かを探し回っていますが、今のところ適切なものが見つかりません。私がこれを見つけるのに最も近いもの:

LZMA で C++ 文字列を単純に圧縮する方法

ただし、どこでも動作する lzma.h ヘッダーが見つかりません。

基本的に、私はこのような関数を探しています:

std::string compressString(std::string uncompressedString){
//Compression Code

return compressedString;
}

圧縮アルゴリズムの選択は重要ではありません。このようなものを見つけるのを手伝ってくれる人はいますか?前もって感謝します!:)

4

1 に答える 1

6

記事のポインタに基づいて、 XZ Utilsを使用していると確信しているので、そのプロジェクトをダウンロードして、作成したライブラリをプロジェクトで利用できるようにします。

ただし、2つの注意点があります。

  • 圧縮された文字列をコンソールにダンプすることはあまり役に立ちません。その文字列にはすべての可能なバイト値が含まれ、そのほとんどはコンソールに表示できないためです。
  • 短い文字列(実際には少量のデータ)を圧縮することは、ほとんどの汎用コンプレッサーが設計されたものではありません。多くの場合、圧縮された結果は入力と同じかそれ以上になります。ただし、少量のデータでLZMAを使用した経験はありません。ユースケースを代表するデータを使用した広範なテストにより、期待どおりに機能するかどうかがわかります。

少量のデータ(300〜500バイトのサイズのデータ​​チャンクでテスト済み)を適切に圧縮するアルゴリズムの1つは、レンジエンコーディングです。

于 2012-11-19T17:29:34.387 に答える