最近用的bitset比较多,位运算在存储状态、模拟行动、搜索很多方面有着非常巨大的优势,所以特意转了一篇bitset的基本用法。
==========================================================
构造函数
bitset b;
如bitset<5> b0;则"b0"为"00000";
bitset b(unsigned long u);
如:bitset<5>b0(5);则"b0"为"00101";
bitset b(string s);
string bitval ( "10011" );
bitset<5> b0 ( bitval4 );
则"b0"为"10011";
bitset b(s, pos);
string bitval ("01011010");
bitset<10> b0 ( bitval5, 3 );
则"b0" 为 "0000011010";
bitset b(s, pos, num);
string bitval ("11110011011");
bitset<6> b0 ( bitval5, 3, 6 );
则"b0" 为 "100110";
os << b
os
输入到b中,如"cin>>b",如果输入的不是0或1的字符,只取该字符前面的二进制位.
bool any( )
bool none( )
是否不存在置为1的二进制位,即全部为0?和any()相反.
size_t count( )
二进制位为1的个数.
size_t size( )
flip()
flip(size_t pos)
bool operator[](
set()
set(pos)
reset()
reset(pos)
test(size_t pos)
在pos处的二进制位是否为1?
unsigned long to_ulong( )
string to_string
返回对应的字符串.