目前,我正在使用 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/