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

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

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

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

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

Konvertiert den Inhalt des Bitsets in einen String. Verwendet zero zur Darstellung von Bits mit dem Wert false und one zur Darstellung von Bits mit dem Wert true .

Der resultierende String enthält N Zeichen, wobei das erste Zeichen dem letzten ( N - 1 ten ) Bit entspricht und das letzte Zeichen dem ersten Bit.

Alle Template-Typargumente müssen angegeben werden, da Funktions-Templates keine Standard-Template-Argumente haben können. Überladungen (2-4) sind bereitgestellt, um die Aufrufe von to_string zu vereinfachen:

2) Verwendet den Standard-Allokator std::allocator .
3) Verwendet das Standard-Zeichenmerkmal std::char_traits und den Standard-Allokator std::allocator .
4) Verwendet den Standard-Zeichentyp char , das Standard-Zeichenmerkmal std::char_traits und den Standard-Allokator std::allocator .
(bis C++11)

Inhaltsverzeichnis

Parameter

Null - Zeichen zur Darstellung von false
Eins - Zeichen zur Darstellung von true

Rückgabewert

1) Die konvertierte Zeichenkette.
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, eins ) .

Ausnahmen

Kann std::bad_alloc vom std::basic_string -Konstruktor werfen.

Hinweise

Seit C++11 können Funktions-Templates Standard-Template-Argumente haben. LWG issue 1113 entfernte die Hilfs-Overloads ( 2-4 ) und fügte die entsprechenden Standard-Template-Argumente in ( 1 ) hinzu.

Beispiel

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

Ausgabe:

00101010
**1*1*1*
OOXOXOXO

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 396 C++98 Null- und Eins-Bits wurden in Zeichen 0
und 1 konvertiert (die nicht '0' und '1' entsprechen)
Parameter hinzugefügt, um
Werte für diese Zeichen bereitzustellen
LWG 434 C++98 alle Template-Argumente mussten angegeben werden Überladungen hinzugefügt ( 2-4 )
LWG 853 C++98 Überladungen ( 2-4 ) hatten nicht die Standard-
argumente, die durch LWG Issue 396 hinzugefügt wurden
ebenfalls hinzugefügt

Siehe auch

gibt eine unsigned long Integer-Darstellung der Daten zurück
(öffentliche Elementfunktion)
(C++11)
gibt eine unsigned long long Integer-Darstellung der Daten zurück
(öffentliche Elementfunktion)