bitset类型

1、标准库提供的bitset类简化了位集的处理。
#include<bitset>

2、在定义bitset时,要明确bitset含有多少位,须在尖括号内给出它的长度值:
bitset<32> bitvec;
长度值必须定义为整型字面值常量或者已用常量值初始化的整型的const对象。

3、bitset对象的初始化:
bitset<n> b;   //b有n位,每位为0
bitset<n> b(u);    //b是unsigned long型u的一个副本
bitset<n> b(s);    //b是string对象s中含有的位串的副本
bitset<n> b(s,pos,n);   //b是s中从位置pos开始的n个位的副本

4、用string对象初始化bitset对象。从string对象读入位集的顺序是从右向左。string对象和bitset对象之间是反向转换的:string对象的最右边字符(即下表最大的那个字符)用来初始化bitset对象的低阶位(即下标为0的位)。

5、bitset对象上的操作:
b.any()    //b中是否存在值为1的二进制位?
b.none()      //b中不存在值为1的二进制位?
b.count()    //b中值为1的二进制位的个数
b.size()    //b中二进制位的个数,返回值的类型是size_t
b[pos]      //访问b中在pos处的二进制位
b.test(pos)    //b中在pos处的二进制位是否为1?
b.set()      //把b中所有二进制位都置为1
b.set(pos)    //把b中在pos处的二进制位置为1
b.reset()      //把b中所有的二进制位都置为0
b.reset(pos)    //把b中在pos处的二进制位置为0
b.flip()      //把b中所有二进制位逐位取反
b.flip(pos)      //把b中在pos处的二进制位取反
b.to_ulong()   //用b中同样的二进制位返回一个unsigned long值
os << b   //把b中的位集输出到os流
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值