一 標準庫bitset型別
標準庫提供bitset類來進行位集的處理,同其他的一些標準庫一樣,要使用bitset類就必須包含系相關標頭檔案
#includeusing std::bitset;
二 bitset物件的定義和初始化
bitsetb;//b有n位,每位都為0
bitsetb(u);//b是乙個unsigned long型的乙個副本
bitsetb(s);//b是string物件s中含有位串的副本
bitsetb(s,pos,n);//b是s中從位置pos開始的n個位的副本
注:1. bitset型別長度大於unsigned long值的二進位制位數,高位為0。若beiset型別長度小於unsigned long,則高位丟棄
2.從string物件的讀入位集的順序是從右往左
eg. string str(「1100」);
bitset<32> b(str); //b中2位和3位為1
3.不一定要把整個string物件都作為bitset物件的初始值,相反,可以只用子串作為初始值
string str("111001100110011");
bitset<32> b1(str,5,4);//b1從3位到0位為1100,其餘位為0
bitset<32> b2(str,str.size()-4);//使用最後的4的字元
二 bitset物件操作
b.any();//b中是否存在為1的位
b.none();//b中沒有乙個為1的位,返回true
b.count();//統計b中為1的個數
b.size();//b中二進位制的位數
b[pos];//訪問b中pos處二進位制位
b.test(pos);//測試pos的位是否為1
b.set();//所有二進位制設定為1
b.set(pos);//pos位置設定為1
b.reset();//b中所有為為0
b.reset(pos);//pos位設定為0
b.flip();//b中所有的位逐位取反
b.flip(pos);//pos位取反
b.to_ulong();//用b中同樣的二進位制位返回乙個unsigned long值
os<
注:count和size操作的返回型別是標準庫中命名為size_t的型別。size_t定義在cstddef標頭檔案中
C primer札記10 繼承
包。繼承,多型性c 的三個基本概念,在這裡,我們重點總結繼承的東西 1 類派生列表 類派生列表中指定乙個派生類繼承基類,來自列表與乙個或多個基類如 class b public a1,protected a2,private a3 可是單繼承時最常見的,多繼承不多見 2 派生類的定義 派生類繼承時,...
C Primer 學習札記 左值和右值
c primer p121 當乙個物件被用作右值的時候,用的是物件的值 內容 當物件被用作左值的時候,用的是物件的身份 在記憶體中的位置 乙個重要的原則 在需要右值的地方可以用左值來代替,但是不能把右值當成左值 也就是位置 使用。當乙個左值被當成右值使用時,實際使用的是它的內容 值 到目前位置,已經...
c primer 第四版 學習札記 9 24
1 ex4 22 const char cp hello int cnt while cp while cp 解釋兩個迴圈的不同 我的理解是第乙個迴圈是判斷cp指標是否為空作為迴圈條件的,而 cp的操作並不會讓cp為空,所以迴圈會持續進行,直到出錯 也許會是個大錯誤,因為都不知道會訪問到記憶體的何處...