Шаг 348.
Библиотека STL.
Специальные контейнеры. Битовые поля (общие сведения)

    На этом шаге мы приведем общие сведения о битовых полях.

    Битовые поля моделируют массивы битов (логических величии) фиксированного размера. Они часто используются для выполнения операций с наборами независимых флагов. В программах на языке С, а также в старых программах C++ массив битов обычно представляется типом long, а операции с битами выполняются при помощи поразрядных операторов (таких, как &, [ и ~). Основные достоинства класса bitset - произвольный размер битового поля и поддержка дополнительных операций (например, присваивание значений отдельных битов, чтение и запись битовых полей как последовательности нулей и единиц).

    Количество битов в битовом поле остается неизменным, поскольку оно передается в параметре шаблона. Если вам потребуется контейнер с переменным количеством битов, воспользуйтесь классом vector<bool> (смотри шаг 140).

    Класс bitset определяется в заголовочном файле <bitset>:

  #include <bitset>

    В файле <bitset> класс bitset определяется в виде шаблона, которому в параметре передается размер поля в битах:

namespace std {
  template <size_t Bits>
  class bitset; 
}

    В данном случае в параметре шаблона передается не тип, а беззнаковое целое значение (эта возможность рассматривается на шаге 30).

    Шаблоны с разными аргументами определяют разные типы. Сравнение и комбинирование битовых полей разрешено только для полей с одинаковыми значениями аргумента шаблона.

    Со следующего шага мы начнем рассматривать примеры использования битовых полей.




Предыдущий шаг Содержание Следующий шаг