Я ищу что-то похожее на вектор STL, но могу обрабатывать целые числа длиной, например, 12, 16, 20, 24, 32 и 40 бит. 16-битные и 32-битные случаи прекрасно обрабатываются vector<uint16_t>
и vector<uint32_t>
, но я не смог найти никакого способа справиться с другими. Обратите внимание, что вся цель этого пути состоит в том, чтобы сэкономить память и пропускную способность, поэтому заполнение не вариант.
Моя структура данных может вывести наиболее значащие биты целых чисел (которые являются int64), поэтому я хочу хранить только младшие разряды. Биты на целое число и количество целых чисел известны во время создания, но не во время компиляции. В идеале биты на целое число могут быть любым значением от 12 до 40, но уровни допустимы из соображений производительности или для работы со структурой, где биты на целое число должны быть установлены во время компиляции.
vector<bool>
и dynamic_bitset могут создавать битовые поля, но они ограничен 1-битными целыми числами. Кто-нибудь знает что-то еще там?