C 標準庫型別 bitset及其應用

2021-06-21 20:54:32 字數 634 閱讀 9696

bitset 物件用每乙個bit位儲存0或1,可以用來標記存在或者不存在,位置下標和儲存內容組成乙個key-value對。用bit標記的好處就是可以節省記憶體空間,特別是應用於海量資料處理中。

例如以下幾個問題:(1) 已知某個檔案內包含一些**號碼,每個號碼為8位數字,統計不同號碼的個數 ;(2) 2.5億個整數中找出不重複的整數的個數,記憶體空間不足以容納這2.5億個整數;(3) 某人有8角的郵票5張,1元的郵票4張,1元8角的郵票6張,用這些郵票中的一張或若干張可以得到多少種不同的郵資?

以上3個問題的共同點都可以歸結為:在一大堆數中找出不重複的個數——去重複問題。對於問題(3),在6*5*7個整數中去重複,我們可以用char陣列或int陣列訪問,記憶體的節省不是那麼明顯;但對於(1)和(2),就很有必要採用bieset類庫了。(1)中:8位最大為99 999 999,如果用每乙個bit表示乙個號碼是否存在,假如每個號碼平均出現1次,理論上只需要100m個bit(12.5mb)的記憶體。

問題(3)的源程式:

#include#include// bitset類庫宣告

using namespace std;

int main()

} }int count = 0;

for (x = 0; x

c 標準庫bitset型別

1.bitset物件的定義及初始化 eg bitset 32 a a的大小為32位二進位制 bitset 16 b 0xffff b的大小位16位,且初值為0xffff 括號中為賦值,可為任何進製,計算機會進行自動的轉化 string str 1011111000011111000000111000...

標準庫bitset型別

有些程式要處理二進位制位的有序集,每個位可能包含0或1.標準庫提供的bitset類簡化了位集的處理。要使用bitset類必須包含相關的標頭檔案類似於vector,bitset類是乙個模板,而不同的是bitset型別物件的區別在於長度而不是型別,定義bitset時,要在尖括號內給出它的長度值。bits...

標準庫型別bitset型別

標準庫bitset型別 bitset標頭檔案 include bitset的定義 bitset 位數 變數名 bitset的初始化方式 bitsetb b有n位,每位都為0 bitsetb u b是unsigned long u的乙個副本 bitsetb s b是string物件s中含有的位串的副本...