std::bitset<N>::to_string

来自cppreference.com
< cpp‎ | utility‎ | bitset
 
 
 
 
(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-1)位,它的尾字符对应首位。

因为函数模板不能有默认模板实参,所以必须提供所有的模板类型实参。重载 (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 问题 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 添加的默认实参 一起添加

[编辑]参阅

返回数据的 unsignedlong 整数表示
(公开成员函数)[编辑]
(C++11)
返回数据的 unsignedlonglong 整数表示
(公开成员函数)[编辑]
close