c STL通用容器 之 bitset容器

2021-06-22 18:57:16 字數 2847 閱讀 8958

bitset

可以看作是二進位制位的容器,並提供了位的相關操作函式。

常用函式

(1)構造、賦值函式

bitset

()bitset

(const

bitset

&)  ;

拷貝建構函式

bitset

(unsignedlong

val)  ;

由無符號長整形數構建位容器

bitset

(const

string&

str,size_t

pos= 0,

size_t

n = -1);

由字串建立位容器

bitset

&operator=(

const

bitset

&);賦值操作

(2)邏輯運算操作(與、或、非)

bitset

&operator&=(

const

bitset

&)bitset

&operator|=(

const

bitset

&)bitset

&operator^=(

const

bitset

&)bitset

&operator<<=(

size_t

)bitset

&operator>>=(

size_t

)bitset

operator<<(

size_t

n)const

bitset

operator>>(

size_t

n)const

bitset

operator&(

const

bitset

&,const

bitset

&)bitset

operator|(

const

bitset

&,const

bitset

&)bitset

operator^(

const

bitset

&,const

bitset

&)(3)

其他操作函式

string

tostring

()  ;

位容器內容轉化成字串,方便顯示

size_t

size()

const

;返回位容器大小

size_t

count()

const

;返回設定

1位個數

bool

any()

const

;是否有位設定

1bool

none()

const

;是否沒有位設定

1bool

test(

size_t

n)const

;測試某位是否為

1 bool

operator(

size_t

n)const

;隨機訪問位元素

unsigned

long

to_ulong

()const

;若沒有溢位異常,返回無符號長整形數

bitset

&set()  ;

位容器所有位置

1bitset

&flip()  ;

位容器所有位翻轉

bitset

&reset()  ;

位容器所有位置

0bitset

&set(

size_t

n,int

val= 1)  ;

設定某位為1或

0,預設

1bitset

&reset(

size_t

n);    ;

復位某位為

0bitset

flip(

size_tn);

;翻轉某位

定義位變數簡單示例

#include#include#includeusing namespace std;

int main()

(1)結合結果體會size()和count()函式區別,set無參、有參函式區別,以及可以用隨機訪問位容器的某一位。同時思考一下reset無

參、有參函式區別,flip無參、有參函式區別。

(2)當用長整形數建立位容器時,範圍應在[0,)範圍內,若位容器設定位數n不足以容納長整形數,則僅擷取假想已是二進位制數的低n

位。例如:bit<2>s4(13),由於13二進位制表示是1101,而容器僅兩位,從低位開始填充,位容器內容為01。

(3)當用字串建立位容器bitset(conststring&str,size_tpos= 0,size_tn = -1)含義是:從字串第pos位置字元開始,擷取n個字元填充

位容器,預設設定是填充全字串。但要注意字串只能包含「1」或「0」字元,不能有其它字元。如「10101」正確,而「12345」錯誤。

位操作函式簡單示例

#include #include #include using namespace std;

void main()

int getmonth()

long getattenddays()

};class student

void add(myattend<31>&m)

void show()

C STL之bitset位集合容器

bitset容器是乙個bit位元素的序列容器,每個元素只佔乙個bit位,取值為0或1,有節省記憶體空間,下面水泥bitset的儲存示意圖,它的19個元素只使用了兩個字元的空間。方法b.any b中是否存在置為1的二進位制位?b.none b中不存在置為1的二進位制位嗎?b.count b中置為1的二...

C STL通用容器 之 對映

常用的對映類是 map,multimap 各個容器中,僅儲存著一樣東西,但是在對映中將會得到兩樣東西 關鍵字以及作為對關鍵字進行查詢得到的結果值,即一對值。map單對映中key與value是一對一的關係,multimap多對映中key與value可以是一對多的關係。1 建構函式 map constp...

c STL容器之map容器

1.map中所有的元素都是pair 2.pair元素中第乙個元素為key,第二個元素為value 3.所有元素都會根據鍵值自動排序 4.map中不允許有重複的鍵,multimap中允許有重複的鍵 優點 可以根據key快速的找到value 一 建構函式 mapmp map const map mp 二...