首页 > 其他 > 详细

ACM的奇计淫巧_bitset优化

时间:2015-08-07 23:52:23      阅读:370      评论:0      收藏:0      [点我收藏+]

 

什么是bitset

bitset 是STL库中的二进制容器,根据C++ reference 的说法,bitset可以看作bool数组,但优化了空间复杂度和时间复杂度,并且可以像整形一样按位与或。

使用方法

申明

bitset的申明要指明长度

bitset<length> bi

这样就申明了一个长度为length的名叫bi的bitset

 赋值

bitset重载了[]运算符,故可以像bool数组那样赋值

bi[2] = 1;

这样就能将第二位赋值为1

常用函数

b1 = b2 & b3;//按位与
b1 = b2 | b3;//按位或
b1 = b2 ^ b3;//按位异或
b1 = ~b2;//按位补
b1 = b2 << 3;//移位
int one = b1.count();//统计1的个数

优化作用

常常碰到处理的数组只有0和1的变化,此时就可以使用bitset优化。比如求两个集合的交集可以使用按位与运算,求并集可以使用按位或运算

ACM的奇计淫巧_bitset优化

原文:http://www.cnblogs.com/HarryGuo2012/p/4712245.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!