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

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

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

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

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

  #include <bitset>

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

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

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

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

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий