C++Primer学习札记_标准bitset库

一 标准库bitset类型

   标准库提供bitset类来进行位集的处理,同其他的一些标准库一样,要使用bitset类就必须包含系相关头文件

#include<bitset>
   using std::bitset;
二 bitset对象的定义和初始化


bitset<n> b;//b有n位,每位都为0
bitset<n> b(u);//b是一个unsigned long型的一个副本
bitset<n> b(s);//b是string对象s中含有位串的副本
bitset<n> b(s,pos,n);//b是s中从位置pos开始的n个位的副本
注:1. bitset类型长度大于unsigned long值的二进制位数,高位为0。若beiset类型长度小于unsigned long,则高位丢弃

       2.从string对象的读入位集的顺序是从右往左

         eg. string str(“1100”);

               bitset<32> b(str); //b中2位和3位为1

      3.不一定要把整个string对象都作为bitset对象的初始值,相反,可以只用子串作为初始值

string str("111001100110011");
bitset<32> b1(str,5,4);//b1从3位到0位为1100,其余位为0
bitset<32> b2(str,str.size()-4);//使用最后的4的字符
二 bitset对象操作


b.any();//b中是否存在为1的位
b.none();//b中没有一个为1的位,返回true
b.count();//统计b中为1的个数
b.size();//b中二进制的位数
b[pos];//访问b中pos处二进制位
b.test(pos);//测试pos的位是否为1
b.set();//所有二进制设置为1
b.set(pos);//pos位置设置为1
b.reset();//b中所有为为0
b.reset(pos);//pos位设置为0
b.flip();//b中所有的位逐位取反
b.flip(pos);//pos位取反
b.to_ulong();//用b中同样的二进制位返回一个unsigned long值
os<<b;//把b中位集输出到os流

注:count和size操作的返回类型是标准库中命名为size_t的类型。size_t定义在cstddef头文件中



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值