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 ;
(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 前)

将位集的内容转换为字符串。使用 zero 表示值为 false 的位,使用 one 表示值为 true 的位。

生成的字符串包含 N 个字符,其中第一个字符对应最后一位( N - 1 th ),最后一个字符对应第一位。

必须提供所有模板类型参数,因为函数模板不能拥有默认模板参数。提供重载版本 (2-4) 以简化 to_string 的调用:

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 整数表示形式
(公开成员函数)