Создание вектора бустика dynamic_bitset в C++

Я хочу создать массив dynamic_bitsets. Итак, я создал вектор dynamic_bitset, используя

vector<boost::dynamic_bitset<>> v;

Как я могу указать размер каждого из этих динамических наборов, то есть v[0], v[1] и т. Д.? Как и в общем случае, мы указываем размер через конструктор.

boost::dynamic_bitset<> x(3);

1 ответ

Решение

Эта линия

vector<boost::dynamic_bitset<>> v;

создать пустой вектор. Вместо этого вы могли бы запросить заполнение записями по умолчанию, которые имеют одинаковое значение, как обычно

vector<int> v(N, 1);

создать вектор с N записи все 1, что вы могли сделать

vector<boost::dynamic_bitset<>> v( N, boost::dynamic_bitset<>(3) ) ;

чтобы оно содержало Nboost::dynamic_bitset<>с 3 битами.

Если ваш вектор содержит достаточно элементов, вы сможете установить v[i] в другой размер

v[i] = boost::dynamic_bitset<>( 100 ) ;

В качестве альтернативы вы можете создать пустой вектор, как вы делаете сейчас, и просто использовать что-то вроде v.push_back(boost::dynamic_bitset<>(42)) добавить элементы правильного размера.

Другие вопросы по тегам