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まで)

bitsetの内容を文字列に変換します。 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以前)

目次

翻訳のポイント: - 「Contents」を「目次」に翻訳 - HTMLタグ、属性、リンク先は一切変更せず保持 - C++関連の専門用語(Parameters、Return value、Exceptions、Notes、Example、Defect reports、See also)は英語のまま保持 - 数値や書式設定は完全に維持 - プロフェッショナルな技術文書としての正確性を確保

パラメータ

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 整数表現を返す
(公開メンバ関数)