Я записываю очень большие данные в файл, это результат кодирования Хаффмана, который мне нужно сохранить в файл и прочитать позже. Я наткнулся на идею использования dynamic_bitset для обработки битов. Я протестировал свой код на небольших данных, и он отлично работает, но на больших данных (кодирование изображения) он терпит неудачу и падает. Вот как выглядит переменная, которую я пытаюсь сохранить:
_encodedSig {m_bits={ size=46944 } m_num_bits=1502195 } boost::dynamic_bitset<unsigned long,std::allocator<unsigned long> > &
Однако, когда я использую функцию size(), она возвращает 16, что меня сбивает с толку. Я попытался протестировать, чтобы преобразовать его в unsigned long, но он выдает исключение. Интересно, сколько данных может обрабатывать динамический bit_set и почему m_num_bits не равно size(). Буду признателен за любые мысли и идеи.
_encodedSig {m_bits={ size=46944 } m_num_bits=1502195 }
?I tried testing to convert it to unsigned long but it throws an exception
- как? Потому что кастинг этого не бросит.why the m_num_bits is not equal to size()
– я подозреваю неопределенное поведение - person sehe   schedule 13.02.2017