C++ bitset用法

C++中的bitset是一个用于存储bit位的容器,它提供了创建、赋值及各种位操作的方法。bitset的大小在定义时固定,可以通过下标、set、reset等函数进行操作。它具有空间优化特性,常用于位运算和布尔数组的替代。在实际应用中,bitset可以结合位运算符进行高效计算。
摘要由CSDN通过智能技术生成

简介

#include< bitset >
bitset是用来存放bit位元素的,由于每个元素(0或1)只占1bit位,因而可以节约空间(相比于8bit位的bool型变量)。在c++ stl中,提供了操作位的容器。

操作

1.创建

bitset<100> b//它能容纳100位比特位,每位上的初始值为0

bitset的大小在定义时确定,定义后不能修改
2.赋值

  • 下标法,b[i],下标i的取值从0到n-1
  • b.set(),对b中所有元素设置为1(默认为0)
  • b.reset(), 对b中所有元素设置为0
  • b.set(pos,val) 等价于 b[pos]=val
  • b.reset(pos) 等价于b[pos]=0

3.其他操作

  • test(pos) pos位是否为1? b.test(4)
  • any() 任意位是否为1? b.any()
  • none() 是否没有位为1? b.none()
  • count() 值是1的位数 b.count()
  • size() 位数 b.size()
  • flip() 翻转所有位 b.flip()
  • flip(pos) 翻转pos位 b.flip(4)

特性:

1.bitset存储二进制数位。
2.bitset就像一个bool类型的数组一样,但是有空间优化——bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一,可以当作一个bool型数组考虑,bitset<N> bs 可以考虑成一个数组bool bs[N]。
3.bitset中的每个元素都能单独被访问,例如对于一个叫做foo的bitset,表达式foo[3]访问了它的第4个元素,就像数组一样,这个访问是从数组后面开始访问的
4.bitset有一个特性:整数类型和布尔数组都能转化成bitset。

应用

位运算符 & | ^ ~ << 也适用于bitset,可在常数时间内进行运算

	bitset<4> foo (string("1001"));
    bitset<4> bar (string("0011"));

    cout << (foo^=bar) << endl;       // 1010 (foo对bar按位异或后赋值给foo)
    cout << (foo&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值