Реализуя алгоритмы потокового сжатия, обычно требуется супербыстрый класс битовых контейнеров FIFO со следующими функциями:
AddBits(UINT n, UINT nBits); // Add lower nBits bits of n
GetBitCount(); // Get the number of bits currently stored
GetBits(BYTE* n, UINT nBits); // Extract n Bits, and remove them
Количество бит ограничено относительно небольшим размером (размер «пакета» или чуть больше).
Я ищу небольшой класс C ++, который реализует эту функцию.
Да, я могу написать один (и знаю, как это сделать), но, возможно, кто-то уже написал это ...
Примечание: я не хочу добавлять в свой проект boost / what-big-lib только для этого.