C++ 初始化后如何从字符串中指定位集值

C++ 初始化后如何从字符串中指定位集值,c++,bitsets,C++,Bitsets,我知道可以使用整数或0和1的字符串初始化位集,如下所示: 位集myByte(字符串(“01011000”);//从字符串初始化 在初始化之后,是否仍然可以使用如上所述的字符串更改位集的值?是的,重载的位集::[]运算符返回一个位集::引用类型,该类型允许您作为普通布尔值访问单个位,例如: myByte[0] = true; myByte[6] = false; 您甚至还有其他一些功能: 编辑:没有重载的=运算符来更改字符串中的单个位(它应该是一个字符),但您可以使用: myByte[0] =

我知道可以使用整数或0和1的字符串初始化位集,如下所示:

位集myByte(字符串(“01011000”);//从字符串初始化


在初始化之后,是否仍然可以使用如上所述的字符串更改位集的值?

是的,重载的
位集::[]
运算符返回一个
位集::引用
类型,该类型允许您作为普通布尔值访问单个位,例如:

myByte[0] = true;
myByte[6] = false;
您甚至还有其他一些功能:

编辑:没有重载的
=
运算符来更改字符串中的单个位(它应该是一个字符),但您可以使用:

myByte[0] = myString[0] == '1';
或与:

myByte[0] = bitset<8>(string("00000001"))[0];
myByte[0] = bitset<8>(myBitString)[0];
myByte[0]=位集(字符串(“00000001”))[0];
myByte[0]=位集(myBitString)[0];
相当于:

myByte[0] = bitset<1>(string("1"))[0];
myByte[0]=位集(字符串(“1”))[0];

是,重载的
位集::[]
运算符返回一个
位集::引用
类型,允许您作为普通布尔值访问单个位,例如:

myByte[0] = true;
myByte[6] = false;
您甚至还有其他一些功能:

编辑:没有重载的
=
运算符来更改字符串中的单个位(它应该是一个字符),但您可以使用:

myByte[0] = myString[0] == '1';
或与:

myByte[0] = bitset<8>(string("00000001"))[0];
myByte[0] = bitset<8>(myBitString)[0];
myByte[0]=位集(字符串(“00000001”))[0];
myByte[0]=位集(myBitString)[0];
相当于:

myByte[0] = bitset<1>(string("1"))[0];
myByte[0]=位集(字符串(“1”))[0];
类似

myByte = bitset<8>(string("01111001"));
myByte=位集(字符串(“01111001”);
应该能做到这一点。

类似于

myByte = bitset<8>(string("01111001"));
myByte=位集(字符串(“01111001”);

应该可以做到这一点。

类似于
myByte=bitset(字符串(“01111001”)?@Roger Rowland:就是这样,谢谢。你能把它作为答案发布吗?类似于
myByte=bitset(string(“01111001”)?@Roger Rowland:就是这样,谢谢。你能把它贴出来作为答复吗?