bitset 位运算

#include <bitset>

0101101010    //一个bitset类型的变量
9876543210  //对应元素的下标

初始化
bitset在定义时,要明确bitset含有多少位,不满左边会自动补0
bitset<5> bit1(“11101”); //最简单的初始化
bitset<n> b; //b有n位,每位都为0
bitset<n> b(u); //b是unsigned long型u的一个副本
bitset<n> b(s); //b是string对象s中含有的位串的副本

查找
bit1.size()//返回二进制总位数
bit1.count()  // 返回bit1里1的个数
bool flag = bit1.any(); // 等价于bit1.count() != 0时返回true
bool flag = bit1.none(); // 等价于bit1.count() == 0时返回true
bool flag = bit1.test(5); // bit[5]等于1的时候返回true,表示这一位被设置了数

操作
bit1.set()//所有位设为1
bit1.set(pos)//下标为pos的位设为1
bit1.reset//所有位设为0
bit1.reset(pos)//下标为pos的位设为0
bit1.flip()//所有位取反
bit1.flip(pos)//pos位取反
bit1.to_ulong()//返回一个unsigned long long 整数

❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼

❤ 点击这里 -> 订阅《从放弃C语言到使用C++刷算法的简明教程》by 柳婼

❤ 点击这里 -> 订阅PAT甲级乙级、蓝桥杯、GPLT天梯赛、LeetCode题解离线版