标准库复习(1)bitset

记性越来越差了,基本上都有点忘了,决定写点blog复习一下


1头文件<bitset>


2初始化

bitset<n> b;   b有n位,每位都是0

bitset<n>   b(u);  b是unsigned long型u的一个副本,会自动变成2进制,按位存,从下标0开始放

bitset<n>   b(s);    b是string对象s中含有的位串副本。   存入方式是将string从右到左,依次放入b中,例如1100 ,放入后就是001100000000....

bitset<n>   b(s,pos,n);    b是s中从你位置pos开始的,n个位的副本,读取方式依然是从右到左。

        例如string str("10110101");
bitset <32> bit2(str,5,3);
bitset <32> bit3 (str,str.size()-4);



3 bitset对象的操作

string str("10110101");
bitset <32> bit2(str,5,3);
bitset <32> bit3 (str,str.size()-4);


bitset <32> bit4(5);

bool flag1 = bit4.any();             //b 中是否存在置为 1 的二进制位
bool flag2 = bit4.none();            //b 中不存在置为 1 的二进制位吗
size_t bcount = bit4.count();       //b 中置为 1 的二进制位的个数
size_t bsize  = bit4.size();      // b 中二进制位的个数,大小,这里的都是32
int num = bit4[1];                  //访问 b 中在 pos 处二进制位
bool flag3 = bit4.test(2);         //  b 中在 pos 处的二进制位置为 1 么?
bit3.set();                //  把 b 中所有二进制位都置为 1
bit4.set(4);                //把 b 中在 pos 处的二进制位置为 1


bit4.flip();             //把 b 中所有二进制位逐位取反
bit4.flip(0);           // 把 b 中在 pos 处的二进制位取反
unsigned long num2 = bit4.to_ulong();     //用 b 中同样的二进制位返回一个 unsigned long 值
string str2 = bit4.to_string();
bit4.reset();           //把 b 中所有二进制位都置为 0




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值