命名空间
变体
操作

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

来自 cppreference.com
< cpp‎ | utility‎ | bitset
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三元比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
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++ 标准。

DR 应用于 已发布的行为 正确行为
LWG 11 C++98 1. C++ 标准中缺少描述
2. 只有非 const 重载
1. 添加了描述
2. 添加了 const 重载
LWG 907 C++98 读取 pos 处位的行为等同于
test(pos),但 test() 可能抛出异常
避免提及 test()

[编辑] 另请参阅

访问特定位
(公共成员函数) [编辑]