Loading

「学习笔记」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\)

posted @ 2023-01-28 13:51  yi_fan0305  阅读(45)  评论(0编辑  收藏  举报