簡(jiǎn)單談?wù)凜++ 頭文件系列之(bitset)
簡(jiǎn)介
該頭文件有關(guān)位集,實(shí)際上是vector
位
位本質(zhì)上對(duì)應(yīng)bool的概念,只有0或1,true或false兩種對(duì)立的值。 但很可惜,字節(jié)才是機(jī)器上最小的存儲(chǔ)單元,所以bool基本上是由一個(gè)字節(jié)大小。
bitset是出于高效的空間利用為目的才出現(xiàn)的。
位操作
operator [] : 通過下標(biāo)訪問bit。
count : 計(jì)數(shù)位值為1的位個(gè)數(shù)。
size : 返回位的大小,即有多少個(gè)位。
test : 測(cè)試下標(biāo)指向的位值是否為1。
any : 判斷是否有任何一個(gè)位值為1。
none : 判斷是否沒有任何一個(gè)位值為1.
all : 判斷是否所有位值為1.
set : 設(shè)置某一個(gè)位值為1.
reset : 重置某一個(gè)位值為0.
flip : 翻轉(zhuǎn)某一個(gè)位值,即0變1,1變0.
轉(zhuǎn)換函數(shù)
to_string : 轉(zhuǎn)換成字符串。
to_ulong : 轉(zhuǎn)換成unsigned long。
to_ullong : 轉(zhuǎn)換成unsigned long long。
位集操作
在這里,bitset可以看成以01位代表的整數(shù)。 對(duì)于整數(shù),我們又很多操作可以執(zhí)行:或、并、亦或、左移等等。 頭文件重載了這些操作符,方便我們對(duì)位集進(jìn)行運(yùn)算:
&、&=
|、|=
^、^=
<<、<<=
>>、>>=
~
==
!=
reference type
因?yàn)镃++最小的內(nèi)置類型大小是1個(gè)字節(jié),而bit概念上只需要1個(gè)bit,所以,與vector
相關(guān)文章
C++中opencv4.1.0環(huán)境配置的詳細(xì)過程
這篇文章主要介紹了C++中opencv4.1.0環(huán)境配置的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10C++實(shí)現(xiàn)LeetCode(94.二叉樹的中序遍歷)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(94.二叉樹的中序遍歷),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C語言?使用qsort函數(shù)來進(jìn)行快速排序
排序方法有很多種:選擇排序,冒泡排序,歸并排序,快速排序等。?看名字都知道快速排序是目前公認(rèn)的一種比較好的排序算法。因?yàn)樗俣群芸?,所以系統(tǒng)也在庫里實(shí)現(xiàn)這個(gè)算法,便于我們的使用。?這就是qsort函數(shù)2022-02-02C語言實(shí)現(xiàn)輸出平均成績(jī)最高學(xué)生的信息
這篇文章主要介紹利用C語言實(shí)現(xiàn)輸出平均成績(jī)最高學(xué)生的信息,文章舉例說明并附有詳細(xì)代碼,需要的朋友可以參考一下2021-10-10OpenCV實(shí)現(xiàn)圖像的直線檢測(cè)
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)圖像直線檢測(cè)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01VisualStudio Community2019在安裝的過程中無法進(jìn)入安裝界面的解決方法
這篇文章主要介紹了VisualStudio Community2019在安裝的過程中無法進(jìn)入安裝界面的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03