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 ;
(hasta 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 ;
(desde C++11)
(constexpr desde C++23)
template < class CharT, class Traits >

std:: basic_string < CharT, Traits >
to_string ( CharT zero = CharT ( '0' ) ,

CharT one = CharT ( '1' ) ) const ;
(2) (hasta C++11)
template < class CharT >

std:: basic_string < CharT > to_string ( CharT zero = CharT ( '0' ) ,

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

Convierte el contenido del bitset a una cadena. Utiliza zero para representar bits con valor de false y one para representar bits con valor de true .

La cadena resultante contiene N caracteres donde el primer carácter corresponde al último bit ( N - 1 th ) y el último carácter corresponde al primer bit.

Se deben proporcionar todos los argumentos de tipo de plantilla porque las plantillas de función no pueden tener argumentos de plantilla predeterminados. Se proporcionan sobrecargas (2-4) para simplificar las invocaciones de to_string :

2) Utiliza el asignador predeterminado std::allocator .
3) Utiliza el rasgo de carácter predeterminado std::char_traits y el asignador predeterminado std::allocator .
4) Utiliza el tipo de carácter predeterminado char , el rasgo de carácter predeterminado std::char_traits y el asignador predeterminado std::allocator .
(until C++11)

Contenidos

Parámetros

cero - carácter a utilizar para representar false
uno - carácter a utilizar para representar true

Valor de retorno

1) La cadena convertida.
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 ) .

Excepciones

Puede lanzar std::bad_alloc desde el constructor de std::basic_string .

Notas

Desde C++11, las plantillas de funciones pueden tener argumentos de plantilla predeterminados. LWG issue 1113 eliminó las sobrecargas auxiliares ( 2-4 ) y añadió los correspondientes argumentos de plantilla predeterminados en ( 1 ) .

Ejemplo

#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';
}

Salida:

00101010
**1*1*1*
OOXOXOXO

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 396 C++98 los bits cero y uno se convertían a caracteres 0
y 1 (que no corresponden a '0' y '1' )
se añadieron parámetros para proporcionar
valores para estos caracteres
LWG 434 C++98 era necesario proporcionar todos los argumentos de plantilla se añadieron sobrecargas ( 2-4 )
LWG 853 C++98 las sobrecargas ( 2-4 ) no tenían los argumentos
predeterminados añadidos por LWG issue 396
también se añadieron

Véase también

devuelve una representación de entero unsigned long de los datos
(función miembro pública)
(C++11)
devuelve una representación de entero unsigned long long de los datos
(función miembro pública)