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 ) 비트에 해당하고 마지막 문자는 첫 번째 비트에 해당합니다.

함수 템플릿은 기본 템플릿 인자를 가질 수 없으므로 모든 템플릿 타입 인자를 제공해야 합니다. to_string 호출을 단순화하기 위해 오버로드 (2-4) 가 제공됩니다:

2) 기본 할당자 std::allocator 를 사용합니다.
3) 기본 문자 특성 std::char_traits 과 기본 할당자 std::allocator 를 사용합니다.
4) 기본 문자 타입 char , 기본 문자 특성 std::char_traits 그리고 기본 할당자 std::allocator 를 사용합니다.
(until 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 이슈 396 에 의해 추가된
기본 인자가 없었음
동일하게 추가

참고 항목

데이터의 unsigned long 정수 표현을 반환합니다
(public member function)
(C++11)
데이터의 unsigned long long 정수 표현을 반환합니다
(public member function)