std::bitset<N>::to_string
template< class CharT, class Traits, class Allocator >
std::basic_string<CharT, Traits, Allocator>
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
|
(1) | (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 bitset in einen String. Verwendet zero, um Bits mit dem Wert false darzustellen und one, um Bits mit dem Wert true darzustellen.
Der resultierende String enthält N Zeichen, wobei das erste Zeichen dem letzten (N-1ten) Bit und das letzte Zeichen dem ersten Bit entspricht.
|
Alle Template-Typ-Argumente müssen angegeben werden, da Funktions-Templates keine Standard-Template-Argumente haben können. Die Überladungen (2-4) werden bereitgestellt, um die Aufrufe von 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) |
Parameter
| Null | - | Zeichen zur Darstellung von false |
| Eins | - | Zeichen zur Darstellung von true |
Rückgabewert
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) |