1 Star 1 Fork 1

pppsh/GZip文件压缩

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
HuffmanCompress.hpp 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
pppsh 提交于 2022-09-05 20:18 . gzip文件压缩
#pragma once
#include <string>
#include <vector>
#include "huffman.hpp"
using std::string;
struct FreqInfo {
unsigned char _ch;
size_t _appareCount;
string _enCode;
FreqInfo(size_t appareCount = 0)
:_appareCount(appareCount)
{}
FreqInfo operator+(const FreqInfo& other) const {
return FreqInfo(_appareCount + other._appareCount);
}
bool operator>(const FreqInfo& other) const {
return _appareCount > other._appareCount;
}
bool operator== (const FreqInfo& other) const {
return _appareCount == other._appareCount;
}
bool operator!= (const FreqInfo& other) const {
return _appareCount != other._appareCount;
}
};
class HuffmanCompress {
public:
HuffmanCompress();
void CompressFile(const string& filePath, string outPath = string());
void DeCmpressFile(const string& filePath, string name = string());
void GetHuffmanCode(HuffmanTreeNode<FreqInfo>* root);
void enCode(HuffmanTreeNode<FreqInfo>* root);
void PutsHead(const string& filePath, FILE* fOut);
string GetsFileTail(const string& filePath);
std::vector<FreqInfo> _status;
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/sun-haoppp/gzip-file-compression.git
git@gitee.com:sun-haoppp/gzip-file-compression.git
sun-haoppp
gzip-file-compression
GZip文件压缩
master

搜索帮助