概念:
bitset是用来存储位的(其中的元素只有两种形式)
这个类通常用来模拟一个布尔数组,但对空间分配上进行了优化:通常,每个元素只占用一个bit ,而通常char类型是它的八倍
每个位置上的位都可以被单独访问:例如,对于一个给定的名为foo的bitset,foo[3]表示访问foo的第四位,就像常规的数组访问它的元素一样。但是因为在大多的
c++环境中,没有元素类型是单个位的,所以单独的元素作为特殊的引用类型来访问
bitset具有构建并转换为int和二进制字符串的功能,它也可以由int和bool数组转化得来
bitset的大小在编译的时候就需要确定下来,如果不定长,可用vector<int>
*用bitset需要 #include<bitset>
常用函数:(bitset从0开始算下标,同数组)
size() 返回bitset的大小(位数)
count() 返回bitset中1的个数
all()返回bitset是否全为1 (C++11)
any() 返回bitset中是否有1
none() 返回bitset中是否没有1
set() 将bitset的位全置为1
set(pos) 将bitset的第pos位置为1
set(pos, x) 将bitset的第pos位置为x
reset() 将bitset的位全部置为0
reset(pos) 将第pos位置为0
flip() 将bitset的位全部取反
flip(pos) 将bitset的第pos位取反
to_string() 返回值为将将当前bitset转换为string的结果
to_ulong() 返回值为将当前bitset转换为unsigned long 的结果
(如果爆了unsigned long数据范围,会RE…)