字符串压缩算法

Hir*_*esh 2 c++ compression

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

如何使用LZMA简单地压缩C++字符串

但是,我找不到任何地方都可以使用的lzma.h头文件.

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

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

return compressedString;
}
Run Code Online (Sandbox Code Playgroud)

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

fvu*_*fvu 6

根据文章中的指示,我相当肯定他们正在使用XZ Utils,因此请下载该项目并在项目中使用生成的库.

但是,有两点需要注意:

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

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