为Bitset分配值

时间:2015-01-24 01:16:27

标签: c++ c++11 bitset

我很想知道为什么以下代码正常运行! 根据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;
}

这个问题也可能是相关的。 How to assign bitset value from a string after initializaion

1 个答案:

答案 0 :(得分:4)

Bitset&#39; non-string constructors are implicit

如果宣布它们是明确的,那么你确实必须写

b = bitset<8>(145);