std::bitset 在 cpp 中的工作

working of std::bitset in cpp

我想知道这个程序是如何工作的:

#include <bitset>
#include <iostream>
 
const int option_1 = 0;
const int option_2 = 1;
const int option_3 = 2;
const int option_4 = 3;
const int option_5 = 4;
const int option_6 = 5;
const int option_7 = 6;
const int option_8 = 7;
 
int main()
{
    std::bitset<8> bits(0x2); 
    bits.set(option_5);
    bits.flip(option_6); 
    bits.reset(option_6); 
 
    std::cout << "Bit 4 has value: " << bits.test(option_5) << '\n';
    std::cout << "Bit 5 has value: " << bits.test(option_6) << '\n';
    std::cout << "All the bits: " << bits << '\n';
 
    return 0;
}

我在网站上看过这个例子,但是无法理解这个程序的某些部分的工作原理。
在这里,首先将option5设置为4,然后在主程序中使用"bit.set(option5);"将其设置为1(我是这么想的)。那么上面分配给整数option5的4有什么用??

所以这基本上是一个高级位数组。使用非类型模板在堆栈上创建一个位数组。

option5 变量用于将第四位(打印时从后面开始)设置为 1。因此,当您打印出值时, [=10= 指向的位置有一个 1 ] 也就是从后面数4的位置。

bitset 的构造函数用于将bitset 初始化为0b00000010。 set()函数将指定位置的位设置为1,reset()函数将指定位置的位设置为0。