bitset
bitset基本用法
一、概念
bitset 可以说是一个多位二进制数,每八位占用一个字节,因为支持基本的位运算,所以可用于状态压缩,n 位 bitset 执行一次位运算的时间复杂度可视为 n / 32.
二、基本操作
1.定义:
bitset< n > s;
表示一个n位的二进制数,< >中填写位数;
2.位运算操作符:
~s
: 返回对 s 每一位取反后的结果;
&,|,^
:返回对两个位数相同的bitset执行按位与、或、异或运算的结果;
<<, >>
:返回把一个bitset左移,右移若干位的结果.(补零);
==,!=
:比较两个位数相同的bitset代表的二进制数是否相等;
3.[ ]操作符:
s[k]
:表示s的第k位,即可取值也可赋值,编号从0开始;
4.count:
s.count()
:返回二进制串中有多少个 1;
5.any/none
若 s 所有位都为 0,则s.any()
返回false,s.none()
返回true;
若 s 至少有一位为 1,则s.any()
返回true,s.none()
返回false;
6.set/rest/flip
s.set()
把 s 所有位变为 1;
s.set(k,v)
把 s 的第 k 位改为 v,即s[k] = v
;
s.reset()
把 s 的所有位变为 0.
s.reset(k)
把 s 的第k位改为 0,即s[k] = 0
;
s.flip()
把 s 所有位取反.即s=~s
;
s.flip(k)
把 s 的第 k 位取反,即s[k] ^= 1
;
本文作者:going-zcy
本文链接:https://www.cnblogs.com/going-zcy/p/18002137
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步