目前,我正在使用std::vector<char>
这样的:C++中的动态(类型)二进制缓冲区?
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
有没有做这件事的任何标准的方式,或者我需要库/自己的实现?
尽管这不是最好的方法,但您总是可以使用'std :: vector'。 –
Catalin
您可以使用无符号字符的向量,每当需要新项目时调整其大小,并在数组中构造该类型。 –
这没有标准的方法。 'boost :: any'对于你想要做的事情来说很方便。 – user2079303