Создание вектора бустика 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) ) ;
чтобы оно содержало N
boost::dynamic_bitset<>
с 3 битами.
Если ваш вектор содержит достаточно элементов, вы сможете установить v[i]
в другой размер
v[i] = boost::dynamic_bitset<>( 100 ) ;
В качестве альтернативы вы можете создать пустой вектор, как вы делаете сейчас, и просто использовать что-то вроде v.push_back(boost::dynamic_bitset<>(42))
добавить элементы правильного размера.