用位来表示一个数,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。
头文件:
#include<bitset>
定义
bitset<size> bs(initNum)
其中 size 为 bitset 的容量,initNum 为初始值, 是转化为size长度二进制后赋给c的所有位, 还可以用01字符串来初始化,默认初始化为全0
访问
可以使用 [] 来访问,例如 bs[1] = 1;
, 注意, 非0值会赋值成1, 0值赋值为0
常用成员函数
c.size() // 返回大小(位数)
c.count() // 返回1的个数
c.any() // 返回是否有1
c.none() // 返回是否没有1
c.set() // 全都变成1
c.set(p) // 将第p + 1位变成1
c.set(p, x) // 将第p + 1位变成x
c.reset() // 全都变成0
c.reset(p) // 将第p + 1位变成0
c.flip() // 全都取反
c.flip(p) // 将第p + 1位取反
c.to_ulong() // 返回它转换为unsigned long的结果,如果超出范围则报错
c.to_ullong() // 返回它转换为unsigned long long的结果,如果超出范围则报错
c.to_string() // 返回它转换为string的结果