基本上,我有我的霍夫曼表
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有关。有什么建议么?如果您有更好的方法来存储我想听的位和值。