使用bitset需要添加头文件bitset ,bitset是一种特殊的容器 ,bitset数组中 ,每个成员只装1bit位的数据 , 即只能是0 或 1。
- bitset 的基本用法 :
初始化bitset容器 bitset<‘size’> 容器名;未初始化容器数据,会默认每位都是0 也可以给一个具体的初始化:存入int数据 bitset<‘size’> 容器名(‘num’); 会将num以二进制形式储存在bitset中,如果初始化的容器位数不够 ,会截取num二进制形式下的左边部分,如果bitset容器过大,会把多于的位用0填充; 也可以初始化装入只含0和1的字符串: biset<‘size’> 容器名(’str‘);注 若str中含除0 1 外的字符会报错 容器会将str原样储存在每一位中,若容器过小会优先储存str的左边部分,过大则用0补足 代码示例:
bitset<10> a;
for(int i = 0 ; i < 10 ; i++) cout<<a[0];
cout<<endl;
bitset<5> a1(12);
cout<<a1<<endl;
for(int i = 0 ; i < 5 ; i++) cout<<a1[i];
cout<<endl;
bitset<5> a2("0100");
cout<<a2<<endl;
也可以使用二维形式的bitset容器(感觉像是二维) bitset<‘size’> 容器名[n]; n表示初始化n个size字节的bitset容器
bitset<5> b[4];
for(int i = 0 ; i < 4 ; i++)
{
b[i] = i;
cout<<b[i]<<endl;
}
可以向b[i]中存入数据,也可以索引某个位
cout<<b[1][0]<<endl;
输出结果1;
- betsit用于数据压缩
bitset<1000> a;
a = a<<i;
a = a>>i;
具体运用可见leetcode 5852题
|