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

std::bitset<N>::to_string

Материал из cppreference.com
< cpp‎ | utility‎ | bitset
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
std::bitset
Типы элементы
Функции-элементы
Доступ к элементам
Ёмкость
Модификаторы
Преобразования
bitset::to_string
Функции, не являющиеся элементами
Вспомогательные классы
(C++11)
 
(1)
template<

    class CharT,
    class Traits,
    class Allocator
>
std::basic_string<CharT, Traits, Allocator>

    to_string( CharT zero = CharT('0'), CharT one = CharT('1') ) const;
(до C++11)
template<

    class CharT = char,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>
>
std::basic_string<CharT, Traits, Allocator>

    to_string( CharT zero = CharT('0'), CharT one = CharT('1') ) const;
(начиная с C++11)
(constexpr начиная с C++23)
template< class CharT, class Traits >

std::basic_string<CharT, Traits>

    to_string( CharT zero = CharT('0'), CharT one = CharT('1') ) const;
(2) (до C++11)
template< class CharT >

std::basic_string<CharT>

    to_string( CharT zero = CharT('0'), CharT one = CharT('1') ) const;
(3) (до C++11)
std::string to_string( char zero = '0', char one = '1' ) const;
(4) (до C++11)

Преобразует содержимое битового набора в строку. Использует символ zero для представления битов со значением false и one для представления битов со значением true.

Строка с результатом будет содержать N символов, где первый символ соответствует последнему (N-1му) биту, последний символ соответствует первому биту.

Все аргументы типы шаблона должны быть предоставлены, потому что шаблоны функций не могут иметь аргументы шаблона по умолчанию. Перегрузки (2-4) предназначены для упрощения вызовов to_string:

2) Использует аллокатор std::allocator по умолчанию.
3) Использует свойства символа по умолчанию std::char_traits и аллокатор std::allocator по умолчанию .
4) Использует тип символа по умолчанию char, свойство символа по умолчанию std::char_traits и аллокатор по умолчанию std::allocator.
(до C++11)

Содержание

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

zero символ, используемый для представления false
one символ, используемый для представления true

[править] Возвращаемое значение

1) Преобразованная строка.
2) to_string<CharT, Traits, std::allocator<CharT>>(zero, one).
3) to_string<CharT, std::char_traits<CharT>, std::allocator<CharT>>(zero, one).
4) to_string<char, std::char_traits<char>, std::allocator<char>>(zero, one).

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

Может вызвать std::bad_alloc из конструктора std::string.

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

Начиная с C++11, шаблоны функций могут иметь аргументы шаблона по умолчанию. LWG проблема 1113 удалила вспомогательные перегрузки (2-4) и добавила соответствующие аргументы шаблона по умолчанию в (1).

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

#include <iostream>
#include <bitset>
int main()
{
    std::bitset<8> b{42};
    std::cout << b.to_string() << '\n'
              << b.to_string('*') << '\n'
              << b.to_string('O', 'X') << '\n';
}

Вывод:

00101010
**1*1*1*
OOXOXOXO

[править] Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 396 C++98 нулевой и единичный биты были преобразованы в символы
0​ и 1 (которые не соответствуют '0' и '1')
добавлены параметры для предоставления
значений для этих символов
LWG 434 C++98 все аргументы шаблона должны быть предоставлены добавлены перегрузки (2-4)
LWG 853 C++98 перегрузки (2-4) не имеют аргументов по умолчанию,
добавленные LWG проблема 396
также добавлено

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

возвращает целочисленное представление данных в типе unsigned long
(public функция-элемент) [править]
(C++11)
возвращает целочисленное представление данных в типе unsigned long long
(public функция-элемент) [править]