使用二进制数据块时,在C++中应该使用什么数据类型
What data type should you use in C++ when working with binary data blocks?
虽然string
应该用于处理字符串,但我想知道在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
是合适的;它比CCD_ 9浪费更少的空间。
STL中有许多容器,而不仅仅是vector
。看看并选择适合你的情况。
上面的解决方案是好的,但考虑一下这个解决方案可能是好的:
- STL中的位集
- SGI中的bit_vector
- QTL中的qbit数组
相关文章:
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 数据类型"struct seq<0, 1, 2>{}"含义是什么?
- 当 c++ 需要一种数据类型并获取另一种数据类型时会发生什么?
- 在C++中,运算符 sizeof 返回什么数据类型?
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 什么是 16 字节有符号整数数据类型?
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- 在C 中,对Pair类STL的用途是什么,就像数据类型或容器一样
- 字符串中单个字符作为数组的数据类型是什么
- 什么是在C 中存储结果INT*的最佳数据类型
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- 通过插座发送的内容的数据类型是什么
- 创建 Timer 类时,我应该使用什么数据类型来保存值?(C/C++)
- C++什么数据类型是thread_id,它能分配给变量吗
- 什么数据类型是 16 位操作系统中的 32 位和 32 位操作系统中的 64 位
- 使用二进制数据块时,在C++中应该使用什么数据类型
- 对于一般用途的整数,我应该使用什么数据类型?
- 什么数据类型可以存储100的阶乘?
- 在知道变量是什么数据类型之前如何声明它
- 我必须使用什么C数据类型