Boost - 使用 TLV 编码序列化字符串

Posted

技术标签:

【中文标题】Boost - 使用 TLV 编码序列化字符串【英文标题】:Boost - serialize string with TLV encoding 【发布时间】:2014-06-13 12:06:51 【问题描述】:

是否可以使用 boost 序列化具有 TLV 编码的字符串?或者我应该先编码,然后使用 boost 序列化二进制数据?如果是,那么如何编码为 TLV?

【问题讨论】:

【参考方案1】:

Boost 的二进制序列化档案已经使用了类似于 TLV 的东西。显然,最简单的做法是坚持使用默认的字符串序列化。

但是,您可以为自定义类型定义自定义序列化。

使用 BOOST_STRONG_TYPEDEF 您可以围绕您的 TLV 字符串值创建一个强大的“自定义”类型定义,这样您就可以决定如何序列化字符串(例如,对于这种情况,它可能就足够了将原始数据序列化为字节数组。您可以查看 boost::serialization::make_array<T>() 作为起点

【讨论】:

以上是关于Boost - 使用 TLV 编码序列化字符串的主要内容,如果未能解决你的问题,请参考以下文章

序列化之 TLV

华为OD机试真题Python实现TLV 编码真题+解题思路+代码(2022&2023)

华为OD机试题 - TLV 编码(JavaScript)| 含思路

如何在 .Net 中创建和解析标签、长度、值 (TLV) 并在 Base64 中对其进行编码

华为OD机试模拟题用 C++ 实现 - TLV 编码(2023.Q1)

华为OD机试 - TLV解码(Java) | 机试题+算法思路+考点+代码解析 2023