По теме же, используй вариант из std или напиши функцию QBitArray byte2bitarray(char byte /* or char* bytes */) — минутное дело, и от «сишности» в пользовательском коде избавишься.
Возможно прямое, возможно косвенное, возможно никакого. Трудно сказать. Как-то туманно задан вопрос. Понятно, что ТС хочет «запихнуть байты» в битовый контейнер. Но запихнуть - это как? Может он хочет некоторой аналогии с push_back() в std::vector? Или ему нужно получить доступ байтовому буферу, где хранятся биты?
Но запихнуть - это как? Может он хочет некоторой аналогии с push_back() в std::vector? Или ему нужно получить доступ байтовому буферу, где хранятся биты?
Скажи, как нужно интерпретировать слово «запихать», чтобы подумать вот это? Из формулировки очевидно, что у него есть байт (или их набор), которые нужно распердолить на биты представить в виде битового вектора.
Кхм, если есть элегантное и простое решение от Pavval, хотел бы его увидеть. Надеюсь ты не собираешься предложить хранить по биту в каждом байте.
Берешь тот же list в качестве базового контейнера, размер элемента в байтах подбираешь под требования. Дополнительно хранишь сколько бит валидно в первом и последнем элементе. Дальше рассказывать?
Я просто высказал первый пришедший в голову вариант. Суть в том, что даже лучшая реализация (возможно что-то типа списка, используемого как кольцевой битовый буфер) не будет какой-то супер-сложной.
Скажи, как нужно интерпретировать слово «запихать», чтобы подумать вот это? Из формулировки очевидно, что у него есть байт (или их набор), которые нужно распердолить на биты представить в виде битового вектора.