C++bitset学习小记

来源:互联网 发布:魔方相片软件下载 编辑:程序博客网 时间:2024/04/28 16:03

刚刚打过这道题: https://jzoj.net/senior/#main/show/3486

里面用到了一个叫做bitset的东西

总而言之,一个bitset存的是一个状态,一个二进制状态,不过可以快速统计其中1的个数,也可以快速改变一个位置的0/1状态.

比如说一个两千位的数,如何存储它的状态?嗯,用bitset.

然而bitset也有其缺点,就是它只能进行位运算以及一些简单的赋值.

定义:

#include <bitset>bitset<Maxn> a,b;// 这就定义了两个长度为Maxn的a,b“数组”1234567想要把第i位赋值为1,直接a[i]=b[i]=1即可.常用操作:a.count() //即为1的个数a.set(); a.reset(); //set是全部变1,reset是全部变0.a.size(); //二进制个数a.flip(); //全部取反.a.flip(i); //取反第i位a.any(); //返回是否有1a.none(); //返回是否无1x = a.to_ulong(); //转成一个unsigned long long 数。
原创粉丝点击