gpt4 book ai didi

c++ - LZW C++ 简单实现

转载 作者:行者123 更新时间:2023-11-28 01:32:32 24 4
gpt4 key购买 nike

所以我正在尝试用 C++ 制作一个简单的文件压缩器/解压缩器(我的目标不是尽可能获得最好的结果)但我真的被卡住了,因为我充满了疑问所以他们在这里:

我应该使用哪种字典(我正在使用 map )?我应该存储什么样的数据(我使用 String/int 作为键/值)?我应该用 ASCII 初始化字典吗?我看到有些人使用节点,这是一个很好的方法吗?很难吗?

到目前为止,这是代码:

#define MAX = 1024 //2^10 Where the dictionary reset 

int main(int argc, char *argv[]){
ifstream in(argv[2], ios_base::binary);
ofstream of(argv[3], ios_base::binary);
string str ;
char c;
int i;

if (string(argv[1]) == "-c" ){
map<string,int> Dic;
while (in.get(c))
{
}
in.close();
}
}

欢迎对代码发表任何评论!

最佳答案

答案来自算法,描述可以取,例如here .

1) 如果输入的字符串已经存在,您需要经常检查。您不需要 std::map 提供的字符串顺序,您可以使用 std::unordered_map,它使用哈希并且效率更高。

2) 您可以使用字符串/无符号整数,因为索引 > 0。

3) 是的,从算法描述初始字典是256个ASCII字符。

4) “节点”是什么意思?

尝试实现文章中描述的内容。提供的示例可以是单元测试。

关于c++ - LZW C++ 简单实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com