我正在参加编程课程,其中一项任务是用C ++编写无损压缩程序。我们唯一的限制是我们不能使用STL,静态变量或全局变量。我发现很多压缩算法都需要使用我不允许使用的map / multimap,所以除非我能编写自己的map类并让它工作,否则Huffman编码和LZW几乎是不可能的。
我发现很多算法也使用std :: string,但我完全可以使用cstring(我们可以使用它)。我也可以访问我的教授创建的一些我们可以使用的库。我们可以访问以下内容:
除此之外的任何事情我都要为自己编写代码。
有人会推荐任何非常简单的无损压缩算法吗?我在网上发现的霍夫曼和其他压缩算法看起来非常复杂,更不用说我不能在STL中使用map / multimap :(。我不是在寻找绝对最快的算法,只是作为一个起点,我们将根据需要调整它以使其运行更快。
答案 0 :(得分:2)
我发现的许多压缩算法都需要使用我不允许使用的map / multimap,因此Huffman编码和LZW几乎是不可能的
咦?当然不是。映射是一种非常精简的抽象,可以在您的一个树或哈希表实现上实现。
除非我可以编写自己的地图类并让它工作
所以这可能就是练习的重点。
继续吧。你可以在装配中做OO。您可以编写没有(现成的)数据结构的算法。这只是更多的工作。而且更容易出错。并且更多教育(我希望:)显然也需要很好的学费)