STL:bitset用法详解

所谓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 !

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值