bitset
来源:互联网 发布:韶关市网络问政门户 编辑:程序博客网 时间:2024/06/05 21:09
转载自http://www.cnblogs.com/Ash-ly/p/5890024.html
STL容器 -- Bitset
核心内容:Bitset 是 STL 中的二进制容器, 存放的时 bit 位元素, 每一位只占一个 bit 位, 取值 0 或者 1, 可以像整形元素一样按位与或非, 并且大大优化了时间和空间复杂度.
头文件: #include <bitset>
构造方法:
1 bitset<length> b //b为bitset对象,它能容纳length个bit位,每个元素初值为02 bitset<length> b(unsigned long u) //b有length位,并用u赋值;如果u超过n位,则顶端被截除3 bitset<length> b(string s) //以字符串 s 初始化长度为 length 的 b, s 必须仅包含014 bitset<length> b(string s, pos) // b是 s 中从位置 pos 开始位的副本,前面的多余位自动填充05 bitset<length> b(s, pos, num) //b是s中从位置pos开始的num个位的副本,如果num<n,则前面的空位自动填充06 cin >> b //如果输入的不是0或1的字符,只取该字符前面的二进制位.
常用操作:
b.any( ) //b 中是否存在值为 1 的二进制位b.none( ) //b 中是否不存在值为 1 的二进制位b.set() //对 b 中全部元素设置为 1b.reset() //对 b 中全部元素设置为 0b.set(pos) //即 b[pos] = 1b.set(pos, value) //即 b[pos] = valueb.reset(pos) //即 b[pos] = 0b.to_string() //返回 b 的 string 表示法b.to_ulong //返回 b 的 long 型表示法b.count() //返回二进制为 1 的个数b.size() //二进制位的个数b.flip() //所有二进制位按位取反b.flip(pos) //处于 pos 位置的数取反b.test(pos) //在pos处的二进制位是否为1?
常见运算:
b1 = b2 & b3; //按位与b1 = b2 | b3; //按位或b1 = b2 ^ b3; //按位异或b1 = ~b2; //按位补b1 = b2 << 7; //移位
0 0
- bitset
- bitset
- BitSet
- bitset
- bitset
- BitSet
- bitset
- bitset
- bitset
- bitset
- bitset
- BitSet
- bitset
- bitset
- Bitset
- Bitset
- bitset
- BitSet
- linux配置java环境变量(详细)
- ViewPager+Framgnet使用的优化
- K近邻(KNN)算法
- 牛客网 不等式数列
- 医院CRM是什么?医院CRM能做什么?
- bitset
- Intellij IDEA svn的使用
- python—命名规范
- CodeForces 731 A.Night at the Museum(水~)
- 正则表达式
- MailBee.NET Objects发送电子邮件(SMTP)教程二:SMTP认证
- ConcurrentHashMap详解
- SecureCRT中改变背景色和文字颜色
- react-native-vector-icons 图标库的使用