C++学习笔记--标准库类型(vector,iterator,bitset)(三)

时间:2021-12-11 04:21:21

标准库bitset类型:用于处理二进制位的有序集,每个位可能包含0、1值。

#include<bitset>

using std::bitset;

bitset对象的定义和初始化:

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

bitset<n> b(u);//b是unsigned long型u的一个副本

bitset<n>b(s);//b是string对象s中含有的位串的副本

bitset<n>b(s,pos,n);//b是s从位置pos开始的n个位的副本

string strval("1100");

bitset<32> bitvec(strval);//bitvec的位模式中第2、3位置为1,其余位置为0,如果string对象的字符个数小于bitset类型的长度,则高阶将置为0。

bitset<16> bitvec(0xffff);//0-15为设定为1;

bitset<32> bitvec(0xffff);//0-15为设定为1,其它位置为0;


bitset对象上的操作:

b.any()//是否存在值为1的二进制位

b.none()//是否不存在1

b.count()//1的个数

b.set()//所有位的值设为1

b.reset();//所有位置为0

b.flip();//所有二进制位逐位取反

b.to_ulong();//将二进制值返回为unsigned long值


unsigned long ulong=bitvec.to_ulong();

cout<<ulong<<endl;

3

cout<<bitvec;

0000000000000011;