有些程序要处理二进制位的有序集,每个位可能包含0或1.标准库提供的bitset类简化了位集的处理。要使用bitset类必须包含相关的头文件<bitset>
bitset对象的定义和初始化
类似于vector,bitset类是一个模板,而不同的是bitset类型对象的区别在于长度而不是类型,定义bitset时,要在尖括号内给出它的长度值。
bitset<n> b; //b有n位,每位都是0
bitset<n> b(u); //b是unsigned long型u的一个副本,全转化为二进制
bitset<n> b<s>; //b是string类型s的一个副本 "1101"
bitset<n> b<s,pos,n> //b是s中从位置pos开始的n个位的副本
bitset对象上的操作
b.any() //是否有1
b.none() //是否没有1
b.count() //1的个数 返回类型为size_t
b.size()
b[pos]
b.test(pos) //检验是否为1
b.set() //全部置1
b.set(pos)
b.reset() //全部置0
b.reset(pos)
b.flip() //全部取反
b.flip(pos)
b.to_ulong() //转换为unsigned long类型
os<<b