雖然string
應該用於處理字符串,但我想知道在處理數據塊時應該在C++中使用哪種結構。使用二進制數據塊時,您應該在C++中使用哪種數據類型?
我這樣問,因爲使用一個參數而不是傳遞char* data
和size_t size
(或自定義結構)會更好。
雖然string
應該用於處理字符串,但我想知道在處理數據塊時應該在C++中使用哪種結構。使用二進制數據塊時,您應該在C++中使用哪種數據類型?
我這樣問,因爲使用一個參數而不是傳遞char* data
和size_t size
(或自定義結構)會更好。
std::vector<unsigned char>
,或者優選
std::vector<std::uint8_t>
(在C++ 11,uint8_t
可以在<cinttypes>
找到。舊版的編譯器,但不MSVC,可以具有C99頭<inttypes.h>
。如果數據是一系列16位單元,使用uint16_t
等)
如果數據塊的大小在編譯時已知,則std::array
是合適的;它比vector
浪費更少的空間。
STL中有多個容器,不僅有vector
。看看並選擇適合你的情況。
上述解決方案是好的,但考慮這種解決方案可能是好的:在STL