知识点·bitset用法

· · 算法·理论

定义:bitset

bitset就像是一个可以由你来定义长度的二进制数

用法:

1.!= 返回真如果两个bitset不相等
2.== 返回真如果两个bitset相等
3.&= 完成两个bitset间与运算
4.^= 完成两个bitset间的异或运算
5.|= 完成两个bitset间的或运算
6.~ 反置bitset(和调用flip()类似)
7.<<= 把bitset向左移动
8.>>= 把bitset向右移动
9.[x] 返回第x个位的引用。注意,下标索引是从右往左数的,即最低位下标为0。

具体的:

头文件:

#include <bitset>

指定大小:

bitset<1000> bs;  // a bitset with 1000 bits

构造函数

bitset(): 每一位都是 false。 bitset(unsigned long val): 设为val的二进制形式。 bitset(const string& str): 设为01串 str。

运算符

operator []: 访问其特定的一位.

operator ==/operator !=: 比较两个 bitset 内容是否完全一样.

operator &/operator &=/operator |/operator |=/operator ^/operator ^=/operator ~: 进行按位与/或/异或/取反操作。

注意:

bitset 只能与 bitset 进行位运算,若要和整型进行位运算,要先将整型转换为 bitset.

operator <</operator >>/operator <<=/operator >>=: 进行二进制左移/右移。

此外,bitset 还提供了 C++ 流式 IO 的支持,这意味着你可以通过 cin/cout 进行输入输出。