
正文
C++ 头文件系列 (bitset)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
简介
该头文件有关 位集 ,实际上是vector
位
位本质上对应bool的概念,只有0或1,true或false两种对立的值。 但很可惜,字节才是机器上最小的存储单元,所以bool基本上是由一个字节大小。
bitset是出于高效的空间利用为目的才出现的。
位操作
-
operator []
: 通过下标访问bit。
-
count
: 计数位值为1的位个数。
-
size
: 返回位的大小,即有多少个位。
-
test
: 测试下标指向的位值是否为1。
-
any
: 判断是否
有任何一个
位值为1。
-
none
: 判断是否
没有任何一个
位值为1.
-
all
: 判断是否
所有
位值为1.
-
set
: 设置某一个位值为1.
-
reset
: 重置某一个位值为0.
-
flip
: 翻转某一个位值,即0变1,1变0.
转换函数
-
to_string
: 转换成字符串。
-
to_ulong
: 转换成unsigned long。
-
to_ullong
: 转换成unsigned long long。
位集操作
- to_string : 转换成字符串。
- to_ulong : 转换成unsigned long。
- to_ullong : 转换成unsigned long long。
位集操作
在这里,bitset可以看成以01位代表的整数。 对于整数,我们又很多操作可以执行: 或 、 并 、 亦或 、 左移 等等。 头文件重载了这些操作符,方便我们对位集进行运算:
- &、&=
- |、|=
- ^、^=
- <<、<<=
- >>、>>=
- ~
- ==
- !=
reference type
因为C++最小的内置类型大小是1个字节,而bit概念上只需要1个bit,所以,与vector








