Namespaces
Variants

std::bitset<N>:: to_string

From cppreference.net
Utilities library
(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 .
(until C++11)

Содержание

Параметры

ноль - символ для представления false
один - символ для представления true

Возвращаемое значение

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

Исключения

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

Примечания

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

Пример

#include <bitset>
#include <iostream>
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++.

DR Applied to Behavior as published Correct behavior
LWG 396 C++98 нули и единицы преобразовывались в символы 0
и 1 (которые не соответствуют '0' и '1' )
добавлены параметры для предоставления
значений этих символов
LWG 434 C++98 все шаблонные аргументы должны были предоставляться добавлены перегрузки ( 2-4 )
LWG 853 C++98 перегрузки ( 2-4 ) не имели аргументов по умолчанию,
добавленных LWG issue 396
также добавлены

Смотрите также

возвращает представление данных в виде целого числа типа unsigned long
(публичная функция-член)
(C++11)
возвращает представление данных в виде целого числа типа unsigned long long
(публичная функция-член)