标准库 bitset 类型
bitset 对象的定义和初始化
bitset 必须得是一个类型模板,尖括号内给出的是 bitset 的长度值,编号从 0 开始,0 为低位。构造函数如下
1 | bitset<n> b; //b 有 n 位,每一位都是0 |
注:unsigned long 类型的数据会被 bitset 自动转成二进制。高位自动置0,如果不够位数则丢弃
注2:用 string 对象初始化 bitset 对象的时候,string 对象的最右边的那个字符在 bitset 中是低位,而且仅支持0、1组成的数字,如果是字母的话将会抛出异常!
bitset操作
1 | b.any(); //是否存在置为1的位 |
注:to_ulong()如果硬要转换的话,会抛出异常std::overflow_error
测试整个 bitset 对象
bitset.count()、bitset.size()函数返回值是一个 size_t 的类型 [区别于 string 类型的 string::size_type]
可以用下标法读写 bitset 中的二进制位 [区别于 vector,因为 bitset 的大小已经规定好了,所以不存在越界添加的问题 ]