bitset 用法
来源:互联网 发布:知识管理 知乎 编辑:程序博客网 时间:2024/04/29 17:34
出处:点击打开链接
bitset 类简化了位集的处理,有些程序要使用二进制位的有序集来保存一组项或条件的标志位,可以考虑使用bitset。
需要的文件:
#include <bitset>
Using std::bitset
l bitset 对象的定义和初始化
定义bitset时,要明确bitset有多少位:
bitset<32> bitvec // 32位二进制,初始化为0,0~31
用unsigned 值初始化bitset 对象:
当用unsigned 值初始化bitset 对象时,该值将转化为二进制的位模式。如果bitset类型长度大于 unsigned值的二进制位数,则其余的高阶位将置为0;如果bitset 类型长度小于unsigned 值的二进制位数,则只使用unsigned值中的低阶位,超过bitset类型长度的高阶位将被丢弃。
bitset<16> bit ( 0xFFFF ) // 0~15位都置1
bitset<32> bit ( 0xFFFF ) // 0~15位置1,16~31位置0
用 string 对象初始化bitset对象
string strval ( “1100” )
bitset<32> bit ( strval )
注意:从string对象读入位集的顺序是从右向左。即反向转化:string对象最右边的字符用来初始化bitset对象的低阶位(即下标为0的位)。
bit 的位模式中第2和3位置为1,其余位置都为0。如果string对象的字符个数小于bitset类型的长度,则高阶位将置为0。
不一定要把整个string对象都作为bitset的初始值,可以只用某个子串作为初始值:
string str ( “111111111100000000011011” )
bitset<32> bit ( str , 5 , 4 )
l bitset的成员函数
any() 是否存在位置为1的二进制位
none() 不存在置为1的二进制位?
count() 置为1的二进制位的个数
size() 总的二进制位的个数
[pos] 访问在pos处的二进制位
test(pos) pos处的二进制位是否为1
set() 所有位都置1
set(pos) pos处的二进制置1
reset() 所有二进制置0
reset(pos) pos处的二进制位置0
flip() 所有位置反
flip(pos) pos位置反
to_ulong() 返回一个 unsigned long 值
os<<b 位集输出到os流
参考: 《 C++ Primer》
- bitset用法
- bitset用法
- BitSet用法
- bitset 用法
- bitset<>用法
- bitset 用法
- bitset 用法
- bitset用法
- bitset用法
- bitset用法整理
- bitset用法整理
- bitset用法总结
- bitset 用法整理!
- bitset 用法整理
- bitset 用法整理
- bitset 用法整理
- bitset 用法整理
- STL bitset用法总结
- 当finish掉activity线程时,它所加载的webview线程没有被卸载掉
- Linux下进入single模式与Linux下挂载U盘
- Hdu5033
- 演示:多格式文件内嵌入WPF资源文件
- Java中的数字证书的生成及维护方法
- bitset 用法
- 【LeetCode】-Binary Tree Postorder Traversal
- HDU 5033 - Building
- erlang 学习记录
- 可交互的AsyncTask
- phpmyadmin导入.sql数据库文件报错解决
- iOS8 遇到的问题
- PYTHON CHALLENG warming up
- HDU 5037 Frog(北京网络赛F题)