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

< cpp‎ | utility‎ | bitset

| (1) |
bool operator[]( std::size_t pos ) const; |  | (C++11 前)
constexpr bool operator[]( std::size_t pos ) const; |  | (C++11 起)
reference operator[]( std::size_t pos ); | (2) |

访问位于位置 `pos` 的位。首版本返回位的值，第二版本返回允许修改位的值的 std::bitset::reference 对象。

不同于 test() ，它不抛异常：若 `pos` 在边界外则行为未定义。

### 参数

pos | - | 要返回的位的位置

### 返回值

1) 请求位的值

2) std::bitset::reference 类型对象，允许写入请求位。

### 异常

（无）

### 示例

    #include <iostream>
    #include <bitset>

    int main()
    {
        std::bitset<8> b1(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, the bitset 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, the bitset holds 00101011

### 参阅

test | 访问特定位 (公开成员函数)