std::bitset<N>::to_string
| (1) | ||
template< class CharT, class Traits, class Allocator > std::basic_string<CharT, Traits, Allocator> |
(bis C++11) | |
template< class CharT = char, |
(seit C++11) (constexpr seit C++23) |
|
template< class CharT, class Traits > std::basic_string<CharT, Traits> |
(2) | (bis C++11) |
| template< class CharT > std::basic_string<CharT> to_string( CharT zero = CharT('0'), |
(3) | (bis C++11) |
| std::string to_string( char zero = '0', char one = '1' ) const; |
(4) | (bis C++11) |
Wandelt den Inhalt des Bitsets in einen String um. 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 und das letzte Zeichen dem ersten Bit entspricht.
|
Alle Template-Typargumente müssen angegeben werden, da Funktions-Templates keine standardmäßigen Template-Argumente haben können. Überladungen (2-4) werden bereitgestellt, um die Aufrufe von 2) Verwendet den Standard-Allocator std::allocator.
3) Verwendet die Standard-Zeichenbehandlung std::char_traits und den Standard-Allocator std::allocator.
4) Verwendet den Standard-Zeichentyp char, die Standard-Zeichenbehandlung std::char_traits und den Standard-Allocator std::allocator.
|
(bis C++11) |
Inhalt |
[edit] Parameter
| null | - | Zeichen zur Darstellung von false |
| eins | - | Zeichen zur Darstellung von true |
[edit] Rückgabewert
[edit] Ausnahmen
Kann std::bad_alloc vom Konstruktor von std::basic_string auslösen.
[edit] Hinweise
Seit C++11 können Funktions-Templates Standard-Template-Argumente haben. LWG-Issue 1113 entfernte die Hilfsüberladungen (2-4) und fügte die entsprechenden Standard-Template-Argumente in (1) hinzu.
[edit] 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
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 396 | C++98 | Null- und Eins-Bits wurden in Zeichen konvertiert 0 und 1 (die nicht '0' und '1' entsprechen) |
Parameter hinzugefügt, um Werte für diese Zeichen anzugeben |
| LWG 434 | C++98 | Alle Template-Argumente mussten angegeben werden | Überladungen (2-4) hinzugefügt |
| LWG 853 | C++98 | Überladungen (2-4) hatten nicht die Standard- Argumente, die durch LWG-Issue 396 hinzugefügt wurden |
auch hinzugefügt |
[edit] Siehe auch
| gibt eine unsigned long-Ganzzahlrepräsentation der Daten zurück (public member function) | |
| (C++11) |
gibt eine unsigned long long-Ganzzahlrepräsentation der Daten zurück (public member function) |