Я работаю с библиотекой ZeroMQ, которая использует void *
представлять блоки произвольных двоичных данных. Однако я хотел бы использовать std::vector
скопировать и переместить эти блоки вокруг. Какой предпочтительный, идиоматический способ сделать std::vector
представляющий необработанные байты? Я в настоящее время использую std::vector<unsigned char>
но я хочу убедиться, что мой код имеет смысл для других людей.
Или
std::vector<unsigned char>
или же
#include <cstdint>
std::vector<std::uint8_t>
оба кажутся мне в порядке.
Если вы не знаете природу ваших данных, unsigned char
это наименьший кусок бит, который вы можете представить, не запутавшись. Поэтому это общий тип для любого вида произвольного блока памяти.
Таким образом, ваш вектор выглядит отлично так, как он есть.