字符串压缩算法

时间:2012-11-19 17:02:57

标签: c++ compression

我一直想在C ++中压缩字符串并将其压缩状态显示到控制台。我一直在寻找一些东西,到目前为止找不到合适的东西。我最接近找到这个:

How to simply compress a C++ string with LZMA

但是,我找不到lzma.h标头,它可以在任何地方使用它。

基本上,我正在寻找这样的功能:

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

return compressedString;
}

压缩算法的选择并不重要。有人可以帮我找到这样的东西吗?先感谢您! :)

1 个答案:

答案 0 :(得分:6)

基于文章中的指针,我非常确定他们正在使用XZ Utils,因此请下载该项目并在项目中使用生成的库。

然而,有两点需要注意:

  • 将压缩字符串转储到控制台并不是很有用,因为该字符串将包含所有可能的字节值,其中大部分都不能在控制台上显示
  • 压缩短字符串(实际上是任何少量数据)并不是大多数通用压缩器的设计目标,在许多情况下,压缩结果将比输入大或甚至更大。但是,我没有LZMA对小数据量的经验,对您的用例进行数据代表的广泛测试将告诉您它是否按预期工作。

我一直在使用的一种算法可以对少量数据进行良好压缩(在大小为300-500字节的数据块上进行测试)为range encoding