ACM的奇計淫巧_bitset優化


 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM