「学习笔记」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\)
朝气蓬勃 后生可畏

浙公网安备 33010602011771号