Игнорируя заголовок вашего вопроса, давайте ответим на этот вопрос, вместо этого:
Каков наилучший способ выполнения побитовых операций над вектором?
Лучший способ - определить ваш вектор как vector<unsigned char>
(или vector<uint32_t>
, или любой другой тип целочисленного значения, который вы выберете), и выполнять побитовые операции, как обычно для массива целых чисел без знака.В этом случае все будет намного быстрее, и не будет скрытого механизма.
Вы можете использовать деление (или побитовые операторы, если вы ловкие), чтобы определить, с каким индексом массива вам нужно работать, и для-loops для применения побитовых операций, больших, чем один элемент.
Вот еще один вопрос: Бит с большим количеством битов в C
В основном вы будете делать то же самоеопераций, если и когда вы решите обернуть vector<unsigned some-int-type>
с вашими собственными операторами.