基本的に、私はハフマンテーブルを次のように持っています
std::map<std::string, char> ciMap;
string はビット パターンで、char はそのパターンで表される値です。問題は、それを圧縮ファイルのヘッダーとして保存して、デコードしたいときに同じマップを再度構築できるようにする方法です。
バイナリとして保存しようとしています:
size_t mapLen = ciMap.size();
outFile.write(reinterpret_cast<char*>(&mapLen), sizeof(size_t));
outFile.write(reinterpret_cast<char*>(&ciMap), sizeof(ciMap));
そして後でビルドします:
inFile.read(reinterpret_cast<char*>(&mapLen), sizeof(size_t));
inFile.read(reinterpret_cast<char*>(&ciMap), sizeof(mapLen));
動作しません。文字列の初期化エラーが発生します... NULL と関係があります。助言がありますか?ビットと値を保存するより良い方法があれば、私が聞きたいです。