我真的不想再摆了(🍺)|

Go1NgZCY

园龄:1年1个月粉丝:0关注:0

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 中国大陆许可协议进行许可。

posted @   Go1NgZCY  阅读(25)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起