Bitset

介绍:
有些程序需要处理二进制有序集,标准库提供了bitset 类型,事实上,bitset 是一个二进制容器,容器中每一个元素都是一位二进制码,或为 0,或为 1.
C++标准库 bitset 类型 - DH冰 - //... DH冰的安全笔记
使用:
#include <bitset>
using std::bitset;

1.定义与初始化
在定义 bitset 时,要明确 bitset 有多少位,这个位数是整形常量
bitset<n> b;                          //b 有 n 位,每位都是 0
bitset<n> b(u);                     //b 是 unsigned long 型 u 的一个副本
bitset<n> b(s);                      //b 是 string 对象 s 中含有的 位串 的副本,这个s 必须是位串,也就是二进制码串
bitset<n> b(s, pos, n);        //b 是 s 中 从位置 pos 开始的 n 个位的副本

2.bitset 的操作
b.any()              //b 中是否存在置为 1 的二进制位? 
b.none()             // 和b.any() 效果一样
b.count()            //b 中不存在置为 1 的二进制位吗? 
b.size()              //b 中置为 1 的二进制位的个数 
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 流
 

示例:

cout << b << endl;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值