命名空间
变体
操作

std::bitset<N>::to_string

来自 cppreference.com
< cpp‎ | utility‎ | bitset
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三元比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

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

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

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

所有模板类型参数都需要提供,因为函数模板不能具有默认模板参数。重载 (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).

[edit] 异常

可能从 std::bad_alloc 中抛出 std::basic_string 构造函数。

[edit] 注释

自 C++11 以来,函数模板可以具有默认模板参数。 LWG issue 1113 删除了辅助重载 (2-4) 并在 (1) 中添加了相应的默认模板参数。

[edit] 示例

#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

[edit] 缺陷报告

以下行为更改缺陷报告被追溯应用于先前发布的 C++ 标准。

DR 应用于 发布的行为 正确行为
LWG 396 C++98 零位和一位被转换为字符 0
1(它们不对应于 '0''1'
添加了参数以提供
这些字符的值
LWG 434 C++98 需要提供所有模板参数 添加了重载 (2-4)
LWG 853 C++98 重载 (2-4) 没有默认值
LWG issue 396 添加的参数
还添加了

[edit] 另请参见

返回数据的 unsigned long 整数表示形式
(公共成员函数) [edit]
(C++11)
返回数据的 unsigned long long 整数表示形式
(公共成员函数) [edit]