Это потому, что вы продолжаете использовать push_back()
, но на самом деле вы уже знаете размер заранее. Это означает много избыточного копирования и перераспределения. Вы должны изменить его размер в первую очередь. Кроме того, вам не нужно push_back()
каждое значение - у вас должна быть возможность использовать некоторую форму insert()
(на самом деле я не знаю точный интерфейс, но я думаю, что append()
- это название) вставить весь вектор цели сразу, что должно быть значительно лучше.
Кроме того, вы оставляете dynamic_bitset
как unsigned long, но, насколько я вижу, вы фактически только вставляете unsigned char
в него. Изменение, которое может сделать вашу жизнь проще.
Мне также любопытно, что это за тип codes_
- если это map
, вы можете заменить его на vector
, или infact, поскольку он имеет максимальный статический размер (256 записей - максимум для unsigned char
), статический массив.