Namespaces
Variants

std::bitset<N>::operator[]

cppreference.net에서
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (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)



 
 
bool operator[]( std::size_t pos ) const;
(1) (C++11부터 constexpr)
reference operator[]( std::size_t pos );
(2) (C++23부터 constexpr)

위치 pos의 비트에 접근합니다.

1) 비트의 값을 반환합니다.
2) 값을 수정할 수 있는 std::bitset::reference 타입의 객체를 반환합니다.

pos < size()이 false이면 동작이 정의되지 않습니다.

(C++26까지)

pos < size()이 false이면:

  • 구현이 강화된 경우 계약 위반이 발생합니다.
  • 구현이 강화되지 않은 경우 동작이 정의되지 않습니다.
(C++26부터)

매개변수

pos - 반환할 비트의 위치

반환값

1) 요청된 비트의 값.
2) 요청된 비트에 쓰기를 허용하는 std::bitset::reference 타입의 객체.

예외

아무것도 던지지 않습니다.

예제

#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
    std::bitset<8> b1{0b00101010}; // 42에 대한 이진 리터럴
    for (std::size_t i = 0; i < b1.size(); ++i)
        std::cout << "b1[" << i << "]: " << b1[i] << '\n';
    b1[0] = true; // bitset::reference를 통해 첫 번째 비트 수정
    std::cout << "After setting bit 0, b1 holds " << b1 << '\n';
}

출력:

b1[0]: 0
b1[1]: 1
b1[2]: 0
b1[3]: 1
b1[4]: 0
b1[5]: 1
b1[6]: 0
b1[7]: 0
After setting bit 0, b1 holds 00101011

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 수정된 동작
LWG 11 C++98 1. C++ 표준에서 설명이 누락됨
2. 비 const 오버로드만 존재함
1. 설명 추가됨
2. const 오버로드 추가됨
LWG 907 C++98 pos 위치의 비트를 읽는 동작이
test(pos) 와 동등했으나, test() 는 예외를 발생시킬 수 있음
test() 에 대한 언급을 피함

참고 항목

특정 비트에 접근
(public member function)