【C++】 C++标准模板库(九) Bitsets
生活随笔
收集整理的這篇文章主要介紹了
【C++】 C++标准模板库(九) Bitsets
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. C++ Bitsets
C++ Bitsets給程序員提供一種位集合的數據結構。Bitsets使用許多二元操作符,比如邏輯和,或等。
| Constructors | 創建新bitsets |
| Operators | 比較和賦值bitsets |
| any() | 如果有任何一個位被設置就返回true |
| count() | 返回被設置的位的個數 |
| flip() | 反轉bits中的位 |
| none() | 如果沒有位被設置則返回true |
| reset() | 清空所有位 |
| set() | 設置位 |
| size() | 返回可以容納的位的個數 |
| test() | 返回指定位的狀態 |
| to_string() | 返回bitset的字符串表示 |
| to_ulong() | 返回bitset的整數表示 |
2. C++ Bitsets
Constructors
語法:| bitset();bitset( unsigned long val ); |
C++ Bitsets能以無參的形式創建,或者提供一個長無符號整數,它將被轉化為二進制,然后插入到bitset中。當創建bitset時,模板中提供的數字決定bitset有多長。
例如,以下代碼創建兩個bitsets,然后顯示它們:
// 創建一個8位長的bitsetbitset<8> bs;// 顯示這個bitsetfor( int i = (int) bs.size(); i >= 0; i-- ) {cout << bs[i] << " ";}cout << endl;// 創建另一個bitsetbitset<8> bs2( (long) 131 );// 顯示for( int i = (int) bs2.size(); i >= 0; i-- ) {cout << bs2[i] << " ";}cout << endl;Operators
語法:| !=, ==, &=, ^=, |=, ~, <<=, >>=, [] |
這些操作符都可以和bitsets一起工作。它們被這樣定義:
- != 返回真如果兩個bitset不相等。
- == 返回真如果兩個bitset相等。
- &= 完成兩個bitset間的與運算。
- ^= 完成兩個bitset間的異或運算。
- |= 完成兩個
- ~ 反置bitset (和調用 flip()類似)
- <<= 把bitset向左移動
- >>= 把bitset向右移動
- [x] 返回第x個位的引用
例如,以下代碼創建一個bitset,然后向左移動4個位:
// 創建一個bitsetbitset<8> bs2( (long) 131 );cout << "bs2 is " << bs2 << endl;// 向左移動4位bs2 <<= 4;cout << "now bs2 is " << bs2 << endl;當上述代碼運行時,顯示:
bs2 is 10000011now bs2 is 00110000any
語法:| bool any(); |
any()函數返回真如果有位被設置為1,否則返回假。
count
語法:| size_type count(); |
count()函數bitset中被設置成1的位的個數。
flip
語法:| bitset&flip();bitset&flip( size_t pos ); |
flip()函數反置bitset中所有的位,即將1設為0,0設為1。如果指定pos,那么只有pos上的位被反置。
相關主題:~ operator
none
語法:| bool none(); |
none()返回真如果沒有位被設為1,否則返回假。
reset
語法:| bitset&reset();bitset&reset( size_t pos ); |
reset()重置bitset(全部設為0),如果指定pos,那么只有pos上的位被重置。
set
語法:| bitset&set();bitset&set( size_t pos, int val=1 ); |
set()函數設置bitset上所有的位,然后返回bitset。如果指定pos,那么只有pos上的位被設置。
size
語法:| size_t size(); |
size()返回bitset能容納的位。
test
語法:| bool test( size_t pos ); |
test()函數返回在pos上的位的值。
to_string
語法:| string to_string(); |
to_string()函數返回bitset的字符串形式。
to_ulong
語法:| unsigned long to_ulong(); |
to_ulong()返回bitset的無符號長整數形式。
總結
以上是生活随笔為你收集整理的【C++】 C++标准模板库(九) Bitsets的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++】 C++标准模板库(八) Mu
- 下一篇: 【C++】 C++标准模板库(十) 双向