bitset的数据结构用法

一,bitset本质

bitset = 定长二进制数组(0/1)+ 位运算加速

类似:

bool aN;

支持批量位运算(64位/128位并行)

二,定义 & 初始化

bitset<1000>b; //全0

bitset<1000>b("10101"); //字符串初始化(低位在左)

三,基础操作

1,访问 & 修改

bi //访问

bi = 1; //修改

2,清空 / 置1

b.reset(); //全0

b.set(); //全1

b.set(i); //第i位 = 1

b.reset(i); //第i位 = 0

3,取反

~b

b.flip(); //全部翻转

b.flip(i); //单点翻转

4,统计

b.count() // 1 的个数

b.any() // 是否有1

b.none() // 是否全0

b.all() // 是否全1

四,位运算

1,与(交集)

c = a & b;

2,或(并集)

c = a | b;

3,异或

c = a ^ b;

4,位移

b << k

b >> k

复杂度优势

普通做法:

O(n)

bitset:

O(n / 64)

注意事项

必须定长

bitset<n> //n必须是常量

下标必须从0开始

b0 是最低位

相关推荐
辰烨chenye25 分钟前
LeetCode Hot 100 题解 · 普通数组篇
算法·leetcode·职场和发展
hqyjzsb4 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
辰烨chenye4 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
微功夫信息技术4 小时前
分层多智能体强化学习驱动的非急救转运公平 - 效率统一调度系统研究与实践
人工智能·学习·算法·动态规划
sanjiaomao3334 小时前
从论文公式到Python实现:用单元测试校验滑动平均算法
python·算法·单元测试
乐迪信息5 小时前
如何通过AI防爆摄像机精准判断船舶超速?
大数据·人工智能·算法·安全·目标跟踪
大圣编蚕6 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
小玮看世界7 小时前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
黎阳之光7 小时前
数字孪生赋能全域水网,实现水资源管控与节水降碳双向提升
人工智能·物联网·算法·安全·数字孪生
随意起个昵称7 小时前
【BFS】冰面滑行
算法·宽度优先