簡單談談C++ 頭文件系列之(bitset)。本站提示廣大學習愛好者:(簡單談談C++ 頭文件系列之(bitset))文章只能為提供參考,不一定能成為您想要的結果。以下是簡單談談C++ 頭文件系列之(bitset)正文
簡介
該頭文件有關位集,實際上是vector
位
位本質上對應bool的概念,只有0或1,true或false兩種對立的值。 但很可惜,字節才是機器上最小的存儲單元,所以bool基本上是由一個字節大小。
bitset是出於高效的空間利用為目的才出現的。
位操作
operator [] : 通過下標訪問bit。
count : 計數位值為1的位個數。
size : 返回位的大小,即有多少個位。
test : 測試下標指向的位值是否為1。
any : 判斷是否有任何一個位值為1。
none : 判斷是否沒有任何一個位值為1.
all : 判斷是否所有位值為1.
set : 設置某一個位值為1.
reset : 重置某一個位值為0.
flip : 翻轉某一個位值,即0變1,1變0.
轉換函數
to_string : 轉換成字符串。
to_ulong : 轉換成unsigned long。
to_ullong : 轉換成unsigned long long。
位集操作
在這裡,bitset可以看成以01位代表的整數。 對於整數,我們又很多操作可以執行:或、並、亦或、左移等等。 頭文件重載了這些操作符,方便我們對位集進行運算:
&、&=
|、|=
^、^=
<<、<<=
>>、>>=
~
==
!=
reference type
因為C++最小的內置類型大小是1個字節,而bit概念上只需要1個bit,所以,與vector