模板类-bitset


  • 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;
    } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值