Namespaces
Variants

std::bitset<N>::to_string

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変長引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap と 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
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) は 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::bad_alloc から std::basic_string コンストラクタがスローされる可能性があります。

注記

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++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 396 C++98 0と1のビットが文字 ​ 0 ​
と 1 に変換されていた
(これは '0' と '1' に対応しない)
これらの文字の値を提供する
パラメータを追加
LWG 434 C++98 全てのテンプレート引数を
指定する必要があった
オーバーロードを追加 ( 2-4 )
LWG 853 C++98 オーバーロード ( 2-4 ) には LWG issue 396
で追加されたデフォルト引数がなかった
同様に追加

関連項目

データの unsigned long 整数表現を返す
(公開メンバ関数)
(C++11)
データの unsigned long long 整数表現を返す
(公開メンバ関数)