bitset类型, 标准库类型

本文详细介绍了C++标准库中的bitset类型及其使用方法,包括bitset的定义、初始化方式及各种位操作如置位、复位等。此外还介绍了如何通过bitset进行位运算,并提供了bitset的各种成员函数介绍。

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()停止

转载于:https://www.cnblogs.com/zzuzxy/p/8542654.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值