名稱空間
變體
操作

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

來自 cppreference.com
< cpp‎ | 工具庫‎ | bitset
 
 
 
 
bool operator[]( std::size_t pos ) const;
(1) (C++11 起為 constexpr)
reference operator[]( std::size_t pos );
(2) (C++23 起為 constexpr)

訪問位置 pos 處的位。第一個版本返回該位的值,第二個版本返回一個 std::bitset::reference 型別的物件,該物件允許修改該位的值。

test() 不同,它不丟擲異常:如果 pos 超出範圍,則行為未定義。

目錄

[編輯] 引數

pos - 要返回的位的位置

[編輯] 返回值

1) 所請求位的值。
2) 一個 std::bitset::reference 型別的物件,它允許寫入所請求位。

[編輯] 異常

(無)

[編輯] 示例

#include <bitset>
#include <cstddef>
#include <iostream>
 
int main()
{
    std::bitset<8> b1{0b00101010}; // binary literal for 42
 
    for (std::size_t i = 0; i < b1.size(); ++i)
        std::cout << "b1[" << i << "]: " << b1[i] << '\n';
    b1[0] = true; // modifies the first bit through 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++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 11 C++98 1. C++ 標準中缺少描述
2. 只有非 const 過載
1. 添加了描述
2. 添加了 const 過載
LWG 907 C++98 讀取 pos 處位的行為等同於
test(pos) 的行為,但 test() 可能會丟擲異常
避擴音及 test()

[編輯] 參閱

訪問特定位
(公共成員函式) [編輯]