C bitset類的使用與簡介

2021-07-22 21:41:49 字數 1264 閱讀 7218

介紹:

有些程式需要處理二進位制有序集,標準庫提供了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中...