#include<bitset>
来源:互联网 发布:mac鼠标能点右键吗 编辑:程序博客网 时间:2024/06/05 20:07
头文件:#include<bitset>
常用的成员函数:
b.any() b中是否存在置为1的二进制位?
b.none() b中不存在置为1的二进制位吗?
b.count() b中置为1的二进制位的个数
b.size() b中二进制位数的个数
b[pos] 访问b中在pos处二进制位
b.test(pos) b中在pos处的二进制位置为1么?
b.set() 把b中所有二进制位都置为1
b.set(pos) 把b中在pos处的二进制位置为1
b.reset( ) 把b中所有二进制位都置为0
b.reset( pos ) 把b中在pos处的二进制位置置为0
b.flip( ) 把b中所有二进制位逐位取反
b.flip( pos ) 把b中在pos处的二进制位取反
b.to_ulong( ) 把b中同样的二进制位返回一个unsigned
os << b 把b中的位集输出到os流
参考资料:《C++ Primer》
MSDN:http://msdn.microsoft.com/zh-cn/library/zfae7kt8.aspx
- #include <iostream>
- #include <string>
- #include <bitset>
- using namespace std;
- int main()
- {
- string str = "10011";
- bitset<9>bitvec(str);// 0,1,4为置1,其余为0
- string str2 = "Hello,world";
- //bitset<500>b2(str2); //error
- size_t bits_set = bitvec.size();
- cout << "bitvec.size()" << bits_set << endl;
- cout << bitvec << endl; //可以直接输出
- cout << "ulong = " <<bitvec.to_ulong() <<endl << endl;
- bitvec.flip();
- bits_set = bitvec.size();
- cout << "bitvec.size()" << bits_set << endl;
- cout << bitvec << endl;
- cout << "ulong = " <<bitvec.to_ulong() <<endl << endl;
- bitvec.reset();
- bits_set = bitvec.size();
- cout << "bitvec.size()" << bits_set << endl;
- cout << bitvec << endl;
- cout << "ulong = " <<bitvec.to_ulong() <<endl << endl;
- return 0;
- }
执行结果如下所示:
bitvec.size()9
000010011
ulong = 19
bitvec.size()9
111101100
ulong = 492
bitvec.size()9
000000000
ulong = 0
请按任意键继续. . .
0 0
- #include<bitset>
- bitset
- bitset
- BitSet
- bitset
- bitset
- BitSet
- bitset
- bitset
- bitset
- bitset
- bitset
- BitSet
- bitset
- bitset
- Bitset
- Bitset
- bitset
- 经营成功的测试生涯
- 关于 Android Dex 方法限制的一些总结
- 不用加号求加法运算
- 栈的顺序存储和链式存储
- ortp库使用入门
- #include<bitset>
- hdu1018阶乘位数
- vector元素为自定义结构体类型时如何对容器元素进行排序?
- Oracle systemstatedump 会加锁么?
- 关于时间函数的一些有用的SQL脚本
- 如何将Android Studio项目提交(更新)到github
- 5.17学习内容 android判断软键盘状态、系统键盘监控、生成中间logo的二维码
- stk6.1安装方法
- poj 1651 区间dp