std::bitset::to_string(3)
π std::bitset::to_string(3) π
okay so bestie, this page is straight outta the C++ Standard Libary manual, and itβs giving βturn my bits into a stringβ energy. no cap, itβs a std::bitset member function, and itβs lowkey iconic.
β¨ NAME β¨
std::bitset::to_string β std::bitset::to_string (yes, thatβs the name, she said what she said).
π¦ SYNOPSIS π¦
template< class CharT, class Traits, class Allocator
>
std::basic_string<CharT, Traits, Allocator> (until
C++11)
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
template<
class CharT = char,
class Traits = std::char_traits<CharT>,
class Allocator = std::allocator<CharT> (since
C++11)
>
(constexpr since C++23)
std::basic_string<CharT, Traits, Allocator>
to_string( CharT zero = CharT('0'),
(1)
CharT one = CharT('1') ) const;
template< class CharT, class Traits >
std::basic_string<CharT, Traits> (2) (until
C++11)
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
template< class CharT >
std::basic_string<CharT> to_string( CharT zero =
CharT('0'), (3) (until
C++11)
CharT one =
CharT('1') ) const;
std::string to_string( char zero = '0', char one = (4) (until
C++11)
'1' ) const;
Converts the contents of the bitset to a string. Uses zero to represent bits with value of false and one to represent bits with value of true.
The resulting string contains N characters: the first character corresponds to the last (N-1^th) bit, and the last character corresponds to the first bit.
All template type arguments need to be provided because function templates cannot have default template arguments. Overloads (2-4) are provided to simplify the invocations of to_string (all of these helper overloads are (until C++11)):
- 2) Uses the default allocator
std::allocator. - 3) Uses the default character trait
std::char_traitsand the default allocatorstd::allocator. - 4) Uses the default character type
char, the default character traitstd::char_traitsand the default allocatorstd::allocator.
π PARAMETERS π
zeroβ character to use to representfalse.oneβ character to use to representtrue.
π RETURN VALUE π
- The converted string.
to_string<CharT, Traits, std::allocator<CharT>>(zero, one).to_string<CharT, std::char_traits<CharT>, std::allocator<CharT>>(zero, one).to_string<char, std::char_traits<char>, std::allocator<char>>(zero, one).
π EXCEPTIONS π
May throw std::bad_alloc from the std::basic_string constructor. so yeah, allocation says no sometimes π
π NOTES π
Since C++11, function templates can have default template arguments. LWG issue 1113 removed the helper overloads (2-4) and added the corresponding default template arguments in (1).
πΈ EXAMPLE πΈ
// Run this code
#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';
}
Output
00101010
**1*1*1*
OOXOXOXO
π DEFECT REPORTS π
The following behavior-changing defect reports were applied retroactively to previously published C++ standards. dramatic but true, bestie π«Ά
- LWG 396 β applied to C++98. Behavior as published: zero and one bits were converted to characters
0and1(which do not correspond to'0'and'1'). Correct behavior: added parameters to provide values for these characters. - LWG 434 β applied to C++98. Behavior as published: all template arguments needed to be provided. Correct behavior: added overloads (2-4).
- LWG 853 β applied to C++98. Behavior as published: overloads (2-4) did not have the default arguments added by LWG issue 396. Correct behavior: also added.
π SEE ALSO π
to_ulongβ returns an unsigned long integer representation of the data (public member function).to_ullongβ returns an unsigned long long integer representation of the data(C++11)(public member function).
k, thatβs the whole page! source/version vibe: http://cppreference.com, dated 2024.06.10 β mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms