使用二进制数据块时,在C++中应该使用什么数据类型

What data type should you use in C++ when working with binary data blocks?

本文关键字:什么 数据类型 C++ 二进制 数据      更新时间:2023-10-16

虽然string应该用于处理字符串,但我想知道在C++中处理数据块时应该使用什么结构。

我之所以这么问,是因为使用一个参数而不是传递char* datasize_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是合适的;它比CCD_ 9浪费更少的空间。

STL中有许多容器,而不仅仅是vector。看看并选择适合你的情况。

上面的解决方案是好的,但考虑一下这个解决方案可能是好的:

  1. STL中的位集
  2. SGI中的bit_vector
  3. QTL中的qbit数组