bitset类型, 标准库类型

来源:互联网 发布:python配置opencv3.0 编辑:程序博客网 时间:2024/04/30 13:19

C++ primer 17.2
bitset类型, 标准库类型
1 使得位运算更容易实现, 并且能够处理超过最长整型大小的位集合. bitset定义在bitset中
定义和初始化bitset
1 bitset b; b有n位,每一位均为0,从零开始
2 bitsetb(u); b是一个unsigned long long 值u的低n位的拷贝.如果n大于unsigned long long 的大小, 高位置为零
3 bitset b(s,pos,m,zero,one) b是string s从位置pos开始m个字符的拷贝. s只能包含zero和one; 如果包含其他字符, 构造函数会抛出异常. 字符在b中保存为zero和one,pos默认为0,m默认为string::npos(即字符串结束),zero默认为’0’,one默认为’1’;
4 bitset b(cp,pos,m,zero.one) cp指的是c语言风格字符串
bitset 操作
 置位 ,即置为1,复位 置位0
b.any() b中是否存在置位的二进制位
b.all() b的所有位都置位了吗
b.none() b中不存在置位的二进制位了吗
b.count() b中置位的位数
b.size() 返回b的位数
b.test(pos) 若pos位置是置位的,返回true,否则返回false
b.set(pos,v) 将pos位置位v,v默认为1
b.set() 将b中所有位置位
b.reset(pos) 将pos为复位
b.reset() 将b中所有位复位
b.flip(pos) 改变pos为的状态
b.flip() 将b中所有位反转
b[pos] (类似数组) 方位b中pos为处的位
b.to_ulong() 返回unsigned long 的值
b.to_ulonglong() 若b中位数较大, 则抛出异常
b.to_string(zero,one)返回一个string,表示b中的位模式. zero和one的默认值为0,1 用来表示b中0或1
os<< b 将b中二进制位打印为0或1,打印到流os
is>>b 直接在输入流中读取b,遇到第一个不是0或1的数或者文件结尾或已经读到b.size()停止