【发布时间】:2012-09-12 16:34:12
【问题描述】:
我正在使用 ZeroMQ 库,它使用void * 来表示任意二进制数据块。但是我想使用std::vector 来复制和移动这些块。制作代表原始字节的std::vector 的首选惯用方法是什么?我目前使用的是std::vector<unsigned char>,但我想确保我的代码对其他人有意义。
【问题讨论】:
-
unsigned char可以。如果要强调八位字节部分,也可以使用uint8_t。 -
我会
typedef uint8_t byte;,或者甚至可以开设一个你真的无能为力的课程。 (不加字节) -
ZeroMQ 本身是否指定在任何地方读取数据是“作为字符”还是“作为无符号字符”读取数据?如果没有,那么 unsigned char 应该没问题。如果它指定了
char,那么您可能希望使用它来强调您正在提供库所期望的内容。反正应该没什么区别。 -
ZeroMQ 是一个消息传递库,因此除了在线复制和发送之外,它从不对数据做任何事情。所以我觉得没关系...
标签: c++ sockets stl buffer stdvector