C ++将字节保存为尽可能小的文件

时间:2013-09-20 21:50:28

标签: c++ windows serialization

我有492383个向量。每个向量包含52个无符号字符。

当我将它们序列化为文件时,文件大小约为25 MB。 这完全匹配492383 * 52字节。

但是,我想问一下是否有办法以更节省空间的方式存储它,而不是拉近它。我的意思是仅通过编码等。

我想不是,但无论如何我想问。

非常感谢。

3 个答案:

答案 0 :(得分:2)

简答:不!

答案很长:是的,但编码与使用压缩和类似技术没有什么不同。压缩只不过是将数据编码为足够智能的格式,以便识别模式以减小文件的大小。

如果您对使用外部程序进行压缩感到不满意;只需使用一个可以为您执行此操作的库,例如this one,并将其合并到您的程序中。

答案 1 :(得分:0)

一个非常简单但相当高效的编码称为“byte-pair encoding”,它适用于某些类型的数据,例如文本,因为通常有很多“未使用的字节”序列。

BPE编码器/解码器可以用几十行代码实现,因此与zip类型的存档相比,它非常小。

答案 2 :(得分:0)

可能 - 取决于所存储数据的性质。

无论如何 - 为什么要担心25mb的数据?