「学习笔记」bitset
bitset
是一个储存 \(0/1\) 的容器,严格来说,并不属于 STL。
bitset
支持位运算,对于一些二进制的操作也可以支持,还可以将十进制数转化成二进制数,还可以统计二进制位上 \(1\) 的个数,对于像我这样的懒人,简直是二进制操作的神器,爱了爱了!O(∩_∩)O
主要介绍一些常用的函数
定义
bitset
的定义需要给定容器大小
bitset<1000> b;
也可以直接将一个十进制数转化成二进制,在根据这个二进制来创建 bitset
bitset<32> s(ans) // 这里ans是一个int类型的数
运算符
&、|、^
二进制的运算符都可以用,但是要注意,bitset
只能与 bitset
进行运算,不能直接与整数进行运算,要先将整数转化为 bitset
才可以
函数
b.count()
: 返回 \(b\) 中 \(1\) 的个数
b.set()
: 将 \(b\) 中的元素全部设为 \(1\)
b.set(x, 1/0)
: 将 \(b\) 中 \(x\) 位置的元素设为 \(1/0\)
b.reset()
: 将 \(b\) 中的元素清空为 \(0\)
b.to_ulong()
: 将 \(b\) 转化为 unsigned long
类型的数
b.all()
: \(b\) 中全是 \(1\) 则返回 \(1\)
b.none()
: \(b\) 中全是 \(0\) 则返回 \(1\)
朝气蓬勃 后生可畏