介紹:
有些程式需要處理二進位制有序集,標準庫提供了bitset 型別,事實上,bitset 是乙個二進位制容器,容器中每乙個元素都是一位二進位製碼,或為 0,或為 1。
使用:
#include
using
std::bitset;
1.定義與初始化
在定義 bitset 時,要明確 bitset 有多少位,這個位數是整形常量
bitset
b; //b 有 n 位,每位都是 0
bitset
b(u); //b 是 unsigned long(int) 型 u 的乙個副本
bitset
b(s); //b 是 string 物件 s 中含有的位串的副本,這個s 必須是位串,也就是二進位製碼串
bitset
b(s, pos, n); //b 是 s 中 從位置 pos 開始的 n 個位的副本
2.bitset 的操作
b.any() //b 中是否存在置為 1 的二進位制位?
b.none() // 和b.any() 效果一樣
b.count() //b 中值為 1 的二進位制位的個數
b.size() //b 包含多少個二進位制位
b[pos] //訪問 b 中在 pos 處二進位制位
b.test(pos) //b 中在 pos 處的二進位制位置為 1
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 流
注:bitset類變數可以正常進行位運算(如&,|,~,<<,>>)
示例:
cout
<
C bitset類的使用
因為無知而學習,因為學習而更感無知。在刷題過程中遇到不少的位操作,這裡有必要學習一下c 內建的bitset類。歡迎各位指出文中的錯誤。本文主要內容 1.bitset類的函式使用 2.自己實現的mybitset類 主要參考 c primer include 包含標頭檔案,是標準庫的標頭檔案 inclu...
C bitset的簡單使用示例
bitset 一般代替 bool 陣列使用,常用於優化空間,因為 bitset 中乙個元素只佔 1 bit。bitset 的大小在定義使就需要確定。如果想要不定長的 bitset,就需要使用 vector。bitset 的定義 bitset 16 bt 定義大小為16的bitset,每一位都是0 b...
Map Entry 類使用簡介
你是否已經對每次從map中取得關鍵字然後再取得相應的值感覺厭倦?使用map.entry類,你可以得到在同一時間得到所有的資訊。標準的map訪問方法如下 set keys map.keyset if keys null 然後,這個方法有乙個問題。從map中取得關鍵字之後,我們必須每次重複返回到map中...