什么是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優化。比如求兩個集合的交集可以使用按位與運算,求並集可以使用按位或運算