std::bitset<N>:: operator[]
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member types | ||||
| Member functions | ||||
|
(until C++20)
|
||||
| Element access | ||||
|
bitset::operator[]
|
||||
| Capacity | ||||
| Modifiers | ||||
| Conversions | ||||
|
(C++11)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++11)
|
||||
|
bool
operator
[
]
(
std::
size_t
pos
)
const
;
|
(1) | (自 C++11 起为 constexpr) |
|
reference operator
[
]
(
std::
size_t
pos
)
;
|
(2) | (自 C++23 起为 constexpr) |
访问位于位置 pos 的位。
|
若 pos < size ( ) 为 false ,则行为未定义。 |
(C++26 前) |
|
若 pos < size ( ) 为 false : |
(C++26 起) |
目录 |
参数
| pos | - | 要返回的位的位置 |
返回值
异常
不抛出任何异常。
示例
#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++ 标准。
| 缺陷报告 | 适用标准 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 11 | C++98 |
1. C++标准中缺少描述
2. 仅存在非常量重载版本 |
1. 添加描述
2. 添加常量重载版本 |
| LWG 907 | C++98 |
读取位置
pos
比特的行为等效于
test(pos)
,但
test()
可能抛出异常
|
避免提及
test()
|
参见
|
访问特定位
(公开成员函数) |