c++ - C++ 中的动态(类型)二进制缓冲区?

标签 c++ stl

目前,我正在使用 std::vector<char>像这样:

char data, data2, data3;

vec.push_back(data);
vec.push_back(data2);
vec.push_back(data3);

但是,由于我存储的是二进制数据,有时我需要推送不同大小的数据(即不是单个字符),并且我需要手动将该数据拆分为单个字节,这不方便或可读。

像这样的东西会很完美:

buffer.push<int>(some_int); // some_int = 0xAABBCCDD
buffer.push<char>(some_char); // some_char = 0xFF
buffer.push("arbitrary_data", arbitrary_length);

生成的内存将是:

AA BB CC DD FF ...........
// ^ int
//          ^ char

是否有任何标准的方法,或者我需要库/自己的实现?

最佳答案

您正在寻找的称为序列化,它不是 ISO 标准的一部分。不过,Boost 确实有一个库。

关于c++ - C++ 中的动态(类型)二进制缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558362/

相关文章:

c++ - 如何在 googlemock 中创建部分(混合)模拟?

c++ - 在 C++ 中,我将如何创建一个全新的流控制语句?

c++ - 使用堆栈递归循环

c++ - 如何正确返回一个大 vector

C++:STL 错误 C2064

c++ - 为什么 gcc 会警告 alignas 值过大?

c++ - 有没有办法全局填充新/删除分配?

c++ - 包含引用的 STL 映射无法编译

c++ - 优先队列和 Prim 算法

c++ - front() 和 begin() 的区别