字符串压缩算法 我一直想压缩C++中的字符串,并将它的压缩状态显示到控制台。我一直在到处找东西,到目前为止还没有找到合适的。我找到的最接近的东西是这一个:

字符串压缩算法 我一直想压缩C++中的字符串,并将它的压缩状态显示到控制台。我一直在到处找东西,到目前为止还没有找到合适的。我找到的最接近的东西是这一个:,c++,compression,C++,Compression,但是,我在任何地方都找不到lzma.h头文件 基本上,我在寻找这样的函数: std::string compressString(std::string uncompressedString){ //Compression Code return compressedString; } 压缩算法的选择并不重要。有人能帮我找到这样的东西吗?先谢谢你!:) 基于本文中的指针,我相当确定他们正在使用,因此下载该项目并在您的项目中提供生成的库 但是,有两个警告: 将压缩字符串转储到控制台不是很有用

但是,我在任何地方都找不到lzma.h头文件

基本上,我在寻找这样的函数:

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

return compressedString;
}

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

基于本文中的指针,我相当确定他们正在使用,因此下载该项目并在您的项目中提供生成的库

但是,有两个警告:

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

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

您看过zlib吗?如果你存储的是二进制文件,我不会把它放回字符串中。如果你的字符串足够长,你可以找出周期性的部分并把它们转换成短函数。如果它是完全随机的,那么它的可压缩性就会降低。如果它是由许多连续的+相同的字符组成的,它将更具可压缩性。哈夫曼编码、游程长度编码(RLE)、增量编码。或者,如果您实际上对理解算法不感兴趣,请获取zlib。它已经存在于您的手机、电视、浏览器、PS3、XBOX等设备中。它工作正常,便于携带,可以随时使用。
使用liblzma
您必须实际安装它!嘿,谢谢你的回答!实际上,我不需要将压缩字符串真正写入控制台。我只需要将它与其他压缩字符串进行比较。是否有一个C++实现用于范围编码,最好是用于字符串压缩?