Пространства имён
Варианты
Действия

std::bitset::bitset

Материал из cppreference.com
< cpp‎ | utility‎ | bitset
 
 
 
std::bitset
Член типов
Оригинал:
Member types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
bitset::reference
Функции-члены
bitset::bitset
bitset::operator==
bitset::operator!=
Элемент доступа
Оригинал:
Element access
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
bitset::operator[]
bitset::test
bitset::all
bitset::any
bitset::none
(C++11)

 
bitset::count
Потенциала
Оригинал:
Capacity
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
bitset::size
Модификаторы
bitset::operator&=
bitset::operator|=
bitset::operator^=
bitset::operator~
bitset::operator<<=
bitset::operator>>=
bitset::operator<<
bitset::operator>>
bitset::set
bitset::reset
bitset::flip
Преобразования
Оригинал:
Conversions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
bitset::to_string
bitset::to_ulong
bitset::to_ullong(C++11)
Не являющиеся членами функций
Оригинал:
Non-member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
operator&
operator|
operator^
operator<<
operator>>
Вспомогательные классы
Оригинал:
Helper classes
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
std::hash(C++11)
 
(1)
bitset();
(до C++11)
constexpr bitset();
(начиная с C++11)
(2)
bitset( unsigned long val );
(до C++11)
constexpr bitset( unsigned long long val );
(начиная с C++11)
(3)
template< class CharT, class Traits, class Alloc >

explicit bitset( const std::basic_string<CharT,Traits,Alloc>& str,
                 typename std::basic_string<CharT,Traits,Alloc>::size_type pos = 0,
                 typename std::basic_string<CharT,Traits,Alloc>::size_type n =

                     std::basic_string<CharT,Traits,Alloc>::npos);
(до C++11)
template< class CharT, class Traits, class Alloc >

explicit bitset( const std::basic_string<CharT,Traits,Alloc>& str,
                 typename std::basic_string<CharT,Traits,Alloc>::size_type pos = 0,
                 typename std::basic_string<CharT,Traits,Alloc>::size_type n =
                     std::basic_string<CharT,Traits,Alloc>::npos,
                 CharT zero = CharT('0'),

                 CharT one = CharT('1'));
(начиная с C++11)
template< class CharT >

explicit bitset( const CharT* str,
                 typename std::basic_string<CharT>::size_type n =
                     std::basic_string<CharT>::npos,
                 CharT zero = CharT('0'),

                 CharT one = CharT('1'));
(4) (начиная с C++11)

Конструирует новый набор битов из одного из возможных источников данных:

1) Конструктор по умолчанию. Создаёт набор битов, все биты которого установлены в ноль.
2) Конструктор набора битов, инициализирующий первые (правые, менее значимые) M битов из соответствующих значений битов из val, где M самое маленькое число из числа битов в unsigned long long и числа битов N, которое будет в конструируемом наборе. Если M меньше, чем N (набор битов длинней, чем 32 (до C++11) или 64 (начиная с C++11) бит (характерный размер у многих реализаций для unsigned long (начиная с C++11) long)), то остальные биты будет равны нулю.
3) Конструирует набор битов, используя символы из std::basic_string str. Возможно указать начальную позицию pos и длину n строки, которая будет использована для преобразования, также как и символы, которые будут обозначать установлен конкретный бит (one) или нет (zero). Traits::eq() используется для сравнения значений символов.
На самом деле будет использована длина min(n, str.size() - pos) инициализирующей строки.
Если pos > str.size(), то этот конструктор вызовет исключение std::out_of_range. Если какой-то символ в строке str не будет равен zero или one, то будет вызвано исключение std::invalid_argument.
4) Также как (3), но используется CharT* вместо std::basic_string. Эквивалентно вызову bitset(n == basic_string<CharT>::npos

? basic_string<CharT>(str)

: basic_string<CharT>(str, n), 0, n, zero, one)
.

Содержание

[править] Аргументы

val - Число, используемое для инициализации набора битов
str - Строка, используемая для инициализации набора битов
pos - Начальное смещение в str
n - Количество символов, которое будет использовано из str
one - Альтернативный символ для установленного бита в строке str
zero - Альтернативный символ для сброшенного бита в строке str

[править] Исключения

1) нет
2) нет
(до C++11)
1)
спецификация noexcept:  
noexcept
  
2)
спецификация noexcept:  
noexcept
  
(начиная с C++11)
3) std::out_of_range при pos > str.size(), std::invalid_argument, если какой-то символ не будет равен zero или one
4) std::invalid_argument, если какой-то символ не будет равен zero или one


[править] Пример

#include <bitset>
#include <string>
#include <iostream>
#include <climits>
 
int main() 
{
    // Пустой конструктор
    std::bitset<8> b1; // [0,0,0,0,0,0,0,0]
 
    // Конструктор из unsigned long long
    std::bitset<8> b2(42);          // [0,0,1,0,1,0,1,0]
    std::bitset<70> bl(ULLONG_MAX); // [0,0,0,0,0,0,1,1,1,...,1,1,1] для C++11
    std::bitset<8> bs(0xfff0);      // [1,1,1,1,0,0,0,0]
 
    // Конструктор из строки
    std::string bit_string = "110010";
    std::bitset<8> b3(bit_string);       // [0,0,1,1,0,0,1,0]
    std::bitset<8> b4(bit_string, 2);    // [0,0,0,0,0,0,1,0]
    std::bitset<8> b5(bit_string, 2, 3); // [0,0,0,0,0,0,0,1]
 
    // Конструктор из строки, используя собственные символы для представления нолей и единиц
    std::string alpha_bit_string = "aBaaBBaB";
    std::bitset<8> b6(alpha_bit_string, 0, alpha_bit_string.size(),
                      'a', 'B');         // [0,1,0,0,1,1,0,1]
 
    // Конструктор из char*, используя собственные символы для представления нолей и единиц
    std::bitset<8> b7("XXXXYYYY", 8, 'X', 'Y'); // [0,0,0,0,1,1,1,1]
 
    std::cout << b1 << '\n' << b2 << '\n' << bl << '\n' << bs << '\n'
              << b3 << '\n' << b4 << '\n' << b5 << '\n' << b6 << '\n'
              << b7 << '\n';
}

Вывод:

00000000
00101010
0000001111111111111111111111111111111111111111111111111111111111111111
11110000
00110010
00000010
00000001
01001101
00001111

[править] См. также

Устанавливает биты в true или в заданное значение
(public функция-член) [править]
Устанавливает бит в false
(public функция-член) [править]