文章目录
- 前言
- 声明
- 输入输出
- 访问与修改
- 位运算
所谓bitset,就是bit组成的set
(逃)
前言
bitset的诸多好处:
1.节约空间
2.增加一些新的功能
3.几乎没有副作用
4.有了123还不够吗!?
当然,还有一个决定性的好处:
官方比赛可以使用!
声明
开就完了
尖括号里是大小
还可以初始化
注意这里的赋值时从低位到高位
bitset<10>a1;
bitset<10>a2((string)"010110");
输入输出
只能用cout对整体进行输出
蒟蒻并不会输入
(不过这种用来顶包vis的数组要输入输出干啥啊?!)
cout<<a<<endl;
访问与修改
完全当普通的数组访问即可
而且还可以把int或ll直接转化为二进制赋值进去
极其方便
注意下标从0开始!
bitset<10>a1;
bitset<10>a2((string)"010110");
int main(){if(a2[1]) printf("1\n");if(a2[0]) printf("2\n");a2[0]=1;if(a2[0]) printf("3\n");a2=5;cout<<a2<<endl;return 0;
}
输出:
1
3
0000000101
位运算
bitset还有一个很棒的功能:位运算
bitset<10>a1((string)"010011");
bitset<10>a2((string)"010110");
int main(){cout<<(a1^a2)<<endl;a1&=a2;cout<<a1<<endl;return 0;
}
输出:
0000000101
0000010010
大概就这些啦
如果有更多神奇的操作也欢迎 dl 评论区教教我!OvO
thanks for reading !