虽然string
应该用于处理字符串,但我想知道在处理数据块时你应该在C ++中使用什么结构。
我问这个是因为使用一个参数而不是传递char* data
和size_t size
(或自定义结构)会更好。
答案 0 :(得分:12)
std::vector<unsigned char>
或者,最好是
std::vector<std::uint8_t>
(在C ++ 11中,uint8_t
可以在<cinttypes>
中找到。较旧的编译器,但不是MSVC,可能有C99标题<inttypes.h>
。如果您的数据是序列16位单位,使用uint16_t
等。)
如果在编译时知道数据块的大小,std::array
是合适的;它浪费的空间比vector
少。
答案 1 :(得分:4)
STL中有许多容器,而不仅仅是vector
。查看并选择适合您情况的内容。
答案 2 :(得分:2)
上述解决方案很好,但考虑到这个解决方案可能会很好: