std::bitset<N>::to_string
来自 zh.cppreference.net
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) | (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;
|
(C++11 起) (C++23 起 constexpr) |
|
template< class CharT, class Traits >
std::basic_string<CharT, Traits>
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
|
(2) | (C++11 前) |
template< class CharT >
std::basic_string<CharT> to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
|
(3) | (C++11 前) |
std::string to_string( char zero = '0', char one = '1' ) const;
|
(4) | (C++11 前) |
将 bitset 的内容转换为字符串。使用 zero 表示值为 false 的位,使用 one 表示值为 true 的位。
结果字符串包含 N 个字符,其中第一个字符对应最后(第 N-1 位)位,最后一个字符对应第一位。
|
需要提供所有模板类型实参,因为函数模板不能有默认模板实参。提供了重载 (2-4) 以简化 2) 使用默认分配器 std::allocator。
3) 使用默认字符特征 std::char_traits 和默认分配器 std::allocator。
4) 使用默认字符类型
char、默认字符特征 std::char_traits 和默认分配器 std::allocator。 |
(C++11 前) |
参数
| zero | - | 用于表示 false 的字符 |
| one | - | 用于表示 true 的字符 |
返回值
1)
转换后的字符串。
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
)
.
异常
可能从 std::basic_string 构造函数抛出 std::bad_alloc 。
注释
自 C++11 起,函数模板可以拥有默认模板参数。 LWG issue 1113 移除了辅助重载 ( 2-4 ) 并在 ( 1 ) 中添加了相应的默认模板参数。
示例
运行此代码
#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'; }
输出:
00101010 **1*1*1* OOXOXOXO
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用标准 | 发布时行为 | 修正后行为 |
|---|---|---|---|
| LWG 396 | C++98 |
零和一比特被转换为字符
0
和 1 (这些字符不对应 '0' 和 '1' ) |
增加参数以提供
这些字符的对应值 |
| LWG 434 | C++98 | 需要提供所有模板参数 | 增加重载版本 ( 2-4 ) |
| LWG 853 | C++98 |
重载版本
(
2-4
)
未包含
LWG 396 增加的默认参数 |
已同步添加 |
参见
|
返回数据的
unsigned
long
整数表示形式
(公开成员函数) |
|
|
(C++11)
|
返回数据的
unsigned
long
long
整数表示形式
(公开成员函数) |