- stl提供了std::bitset模板类,定义:bitset <32> bitvec;尖括号中的为长度,这条语句把bitvec定义为含有32个的bitset对象。和容器一样,按位置来访问他们,其位置编号从零开始
- 初始化bitset对象的方法: 1、bitset<n> b; b有n位,每位都为0 2、bitset<n> b(u); b是unsigned long型u的一个副本 4、bitset<n> b(s, pos, n); b是s中从位置pos开始的n个位的副本, 相当于b是从s中pos位置开始截取n位
- bitset操作: b.any() b中是否存在为1 b.count() 统计位为1的个数 b.test(pos) 测试b中pos位处是否为1 b.set() 把b中所有位都置为1 b.reset() 所有位都置为0 b.flip() 把b中所有二进制位取反 b.flip(pos) pos处取反 b.to_ulong() 将此二进制转换为一个unsigned long类型值
#include <bits/stdc++.h> using namespace std; int main() { bitset<3> bs; bs[0] = 1, bs[1] = 1, bs[2] = 1; if (bs.any() == 1) cout << "存在1的位" << endl; else cout << "不存在为1的位" << endl; cout << "1的个数为"<< bs.count() << endl; bs.set(); cout << "1的个数为"<< bs.count() << endl; unsigned long value = bs.to_ulong(); cout << value << endl; bs.reset(); cout << "1的个数为"<< bs.count() << endl; return 0; }
模板类-bitset
最新推荐文章于 2024-05-08 17:27:55 发布