bitset 一般代替 bool 數組使用,常用于優化空間,因為 bitset 中一個元素只占 1 bit。
bitset 的大小在定義使就需要確定。如果想要不定長的 bitset,就需要使用 vector。
bitset 的定義:
1
2
|
bitset<16> bt; // 定義大小為16的bitset,每一位都是0 bitset<16> bt(string( "11001" )); // 定義大小為16的bitset,并用string初始化,注意高位為0,也就是 0000000000011001 |
bitset 可以直接使用 cin 和 cout 輸入輸出
1
2
3
|
bitset<16> bt; cin >> bt; cout << bt << endl; |
bitset 可以像數組一樣訪問或修改某一位置的元素,注意0表示低位。
1
2
|
bitset<8> bt; bt[0] = 1; // 00000001 |
bitset 也可以像一個數一樣進行位運算:與(&)、或(|)、異或(^)、取反(~)、左移(<<)、右移(>>)。
常用函數:
1
2
3
4
5
6
7
8
9
|
bitset<8> bt; bt.size(); // 返回大小 bt.count(); // 返回1的個數 bt.set(); // 全部置1 bt.set(pos); // pos位置1 bt.reset(); // 全部置0 bt.reset(pos); // pos位置0 bt.flip(); // 全部取反 bt.flip(pos); // pos位取反 |
以上就是C++ bitset的簡單使用示例的詳細內容,更多關于C++ bitset的資料請關注服務器之家其它相關文章!
原文鏈接:https://www.cnblogs.com/RioTian/p/13958165.html