程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Bitset示例

Bitset示例

編輯:C++入門知識

構造函數 bitset<n> b;  b有n位,每位都為0.參數n可以為一個表達式. 如bitset<5> b0;則"b0"為"00000";   bitset<n> b(unsigned long u);  b有n位,並用u賦值;如果u超過n位,則頂端被截除 如:bitset<5>b0(5);則"b0"為"00101";   bitset<n> b(string s);  b是string對象s中含有的位串的副本 string bitval ( "10011" ); bitset<5> b0 ( bitval4 ); 則"b0"為"10011";   bitset<n> b(s, pos);  b是s中從位置pos開始位的副本,前面的多余位自動填充0; string bitval ("01011010"); bitset<10> b0 ( bitval5, 3 ); 則"b0" 為 "0000011010";   bitset<n> b(s, pos, num);  b是s中從位置pos開始的num個位的副本,如果num<n,則前面的空位自動填充0; string bitval ("11110011011"); bitset<6> b0 ( bitval5, 3, 6 ); 則"b0" 為 "100110"; 其他函數 os << b  把b中的位集輸出到os流   os >>b 輸入到b中,如"cin>>b",如果輸入的不是0或1的字符,只取該字符前面的二進制位.   bool any( )   是否存在置為1的二進制位?和none()相反   bool none( )  是否不存在置為1的二進制位,即全部為0?和any()相反.   size_t count( ) 二進制位為1的個數.   size_t size( )  二進制位的個數   flip()  把所有二進制位逐位取反   flip(size_t pos)  把在pos處的二進制位取反   bool operator[](   size_type _Pos )  獲取在pos處的二進制位   set()  把所有二進制位都置為1   set(pos)  把在pos處的二進制位置為1   reset()  把所有二進制位都置為0   reset(pos)  把在pos處的二進制位置為0   test(size_t pos) 在pos處的二進制位是否為1?   unsigned long to_ulong( )  用同樣的二進制位返回一個unsigned long值   string to_string () 返回對應的字符串. 例子 [cpp]   void test_bitset_constructor()   {       // 構造函數1: bitset<n> b       std::bitset<10> bs1;          // 構造函數2: bitset<n> b(unsigned long u)       std::bitset<5> bs2(10);          // 構造函數3: bitset<n> b(string s)       std::bitset<5> bs3("10100");          // 構造函數4: 復制構造       std::bitset<5> bs4(bs3);          // 構造函數5: bitset<n> b(s, pos)       std::string str = "10100110";       std::bitset<9> bs5(str, 2);       // 000100110          // 構造函數6: bitset<n> b(s, pos, num);       std::bitset<9> bs6(str, 2, 4);    // 000001001   }      void test_bitset_func()   {       // any()是否存在置為1的二進制位       assert(bs1.any() == 0);       assert(bs2.any() == 1);          // none()是否不存在置為1的二進制位, 即全部為0       assert(bs1.none() == 1);       assert(bs2.none() == 0);          // size()二進制位的個數       assert(bs5.size() == 9);          // count()二進制位為1的個數       assert(bs5.count() == 3);          // ...   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved