我很想知道为什么下面的代码有效!根据 bitset 模板类,您可以通过构造函数为 bitset(int 或二进制表示为字符串)赋值,但之后不能。但是在这里你可以看到显式分配一个整数工作正常。
#include <iostream>
#include <bitset>
#include <string>
using namespace std;
int main()
{
    bitset<8> b(string("101"));
    cout << b.to_ullong()<<"\n";
    b= 145;
    cout << b<<"\n";
    return 0;
}
这个问题也可能是相关的。 初始化后如何从字符串中分配位集值
Bitset 的非字符串构造函数是隐式的。
如果它们被声明为显式,你确实必须写
b = bitset<8>(145);