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