bitset用法小结

来源:互联网 发布:java语言的执行模式 编辑:程序博客网 时间:2024/06/07 08:05

b.any()

b中是否存在置为1的二进制位?

b.none()

b中不存在置为1的二进制位吗?

b.count()

b中置为1的二进制位的个数

b.size()

b中二进制位的个数

b[pos]

访问b中在pos处的二进制位

b.test(pos)

b中在pos处的二进制位是否为1?

b.set()

把b中所有二进制位都置为1

b.set(pos)

把b中在pos处的二进制位置为1

b.reset()

把b中所有二进制位都置为0

b.reset(pos)

把b中在pos处的二进制位置为0

b.flip()

把b中所有二进制位逐位取反

b.flip(pos)

把b中在pos处的二进制位取反

b.to_ulong()

用b中同样的二进制位返回一个unsigned long值

os << b

把b中的位集输出到os流

还有就是这个操作的时间复杂度是lg(n)的

比如 a[x]|5就是a[x]所有数都并上5时间复杂度为lg(n)如果x为10^6时间大概到20.非常好用。 也可以a【x】<<5就是a[x]所有的数都加5,时间复杂度也是lg(n)

原创粉丝点击