STL - bitset
STL - bitset 小結
?
聲明:
#include <bitset> using std::bitset;?
申請對象以及初始化:
| bitset<n>?b; | b有n位,每位都為0 |
| bitset<n>?b(u); | b是unsigned long型u的一個副本 |
| bitset<n>?b(s); | b是string對象s中含有的位串的副本 |
| bitset<n>?b(s,?pos,?n); | b是s中從位置pos開始的n個位的副本 |
?
?
?
?
?
?
?
?
?
對象的操作:
| b.any() | b中是否存在置為1的二進制位? 返回 bool |
| b.none() | b中不存在置為1的二進制位嗎? 返回 bool |
| b.count() | b中置為1的二進制位的個數? ?返回 size_t |
| b.size() | b中二進制位的個數 |
| b[pos] | 訪問b中在pos處的二進制位 |
| b.test(pos) | b中在pos處的二進制位是否為1?? 返回bool |
| b.set() | 把b中所有二進制位都置為1 |
| b.set(pos) | 把b中在pos處的二進制位置為1 |
| b.reset() | 把b中所有二進制位都置為0 |
| b.reset(pos) | 把b中在pos處的二進制位置為0 |
| b.flip() | 把b中所有二進制位逐位取反 |
| b.flip(pos) | 把b中在pos處的二進制位取反 |
| b.to_ulong() | 用b中同樣的二進制位返回一個unsigned long值 |
| os?<<?b | 把b中的位集輸出到os流 |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
每行的數字轉換為二進制后代表一個漢字的16*16像素信息(1代表墨跡,0代表無墨跡)。
1 #include <iostream> 2 #include <bitset> 3 using namespace std; 4 int main() 5 { 6 int n,m; 7 while(cin>>n>>m) 8 { 9 bitset<8> t(n);//創建對象的時候可以直接傳進去一個數 10 for(int i = t.size()-1; i >= 0; i--) 11 if(t[i] == 1) printf("*"); 12 else printf(" "); 13 //cout<<t; //也可以直接輸出二進制 14 t = m;//也可以直接賦值 15 for(int i = t.size()-1; i >= 0; i--) 16 if(t[i] == 1) printf("*"); 17 else printf(" "); 18 puts(""); 19 // cout<<t<<endl; //也可以直接輸出二進制 20 } 21 } 22 23 /* 24 4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 25 16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 26 4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 27 0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4 28 4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64 29 16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128 30 0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0 31 2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0 32 1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0 33 0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0 34 */?
?
b.to_string() 轉換為 string
1 // bitset::to_string 2 #include <iostream> // std::cout 3 #include <string> // std::string 4 #include <bitset> // std::bitset 5 6 int main () 7 { 8 std::bitset<4> mybits; // mybits: 0000 9 mybits.set(); // mybits: 1111 10 11 std::string mystring = 12 mybits.to_string<char,std::string::traits_type,std::string::allocator_type>(); 13 14 std::cout << "mystring: " << mystring << '\n'; 15 16 return 0; 17 } View Code?
b.to_ulong()轉換為 unsigned long
b.to_ullong() 轉換為?unsigned longlong
1 // bitset::to_ulong 2 #include <iostream> // std::cout 3 #include <bitset> // std::bitset 4 5 int main () 6 { 7 std::bitset<4> foo; // foo: 0000 8 foo.set(); // foo: 1111 9 10 std::cout << foo << " as an integer is: " << foo.to_ulong() << '\n'; 11 12 return 0; 13 } View Code?
轉載于:https://www.cnblogs.com/ymzjj/p/10453641.html
總結
以上是生活随笔為你收集整理的STL - bitset的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构-树(上)
- 下一篇: 02、如何进行网站性能优化或怎么加快页面