Bitset用法簡單介紹

2021-07-23 06:29:34 字數 1657 閱讀 7355

最近用的bitset比較多,位運算在儲存狀態、模擬行動、搜尋很多方面有著非常巨大的優勢,所以特意轉了一篇bitset的基本用法。

建構函式

bitsetb;

b有n位,每位都為0.引數n可以為乙個表示式.

如bitset<5> b0;則"b0"為"00000";

bitsetb(unsigned long u);

b有n位,並用u賦值;如果u超過n位,則頂端被截除

如:bitset<5>b0(5);則"b0"為"00101";

bitsetb(string s);

b是string物件s中含有的位串的副本

string bitval ( "10011" );

bitset<5> b0 ( bitval4 );

則"b0"為"10011";

bitsetb(s, pos);

b是s中從位置pos開始位的副本,前面的多餘位自動填充0;

string bitval ("01011010");

bitset<10> b0 ( bitval5, 3 );

則"b0" 為 "0000011010";

bitsetb(s, pos, num);

b是s中從位置pos開始的num個位的副本,如果num b0 ( bitval5, 3, 6 );

則"b0" 為 "100110";

os << b

把b中的位集輸出到os流

os >>b

輸入到b中,如"cin>>b",如果輸入的不是0或1的字元,只取該字元前面的二進位制位.

bool any( ) 

是否存在置為1的二進位制位?和none()相反

bool none( ) 

是否不存在置為1的二進位制位,即全部為0?和any()相反.

size_t count( )

二進位制位為1的個數.

size_t size( )

二進位制位的個數

flip()

把所有二進位制位逐位取反

flip(size_t pos)

把在pos處的二進位制位取反

bool operator(   size_type _

pos )

獲取在pos處的二進位制位

set()

把所有二進位制位都置為1

set(pos)

把在pos處的二進位制位置為1

reset()

把所有二進位制位都置為0

reset(pos)

把在pos處的二進位制位置為0

test(size_t pos)

在pos處的二進位制位是否為1?

unsigned long to_ulong( )

用同樣的二進位制位返回乙個unsigned long值

string to_string ()

返回對應的字串.

分類:

c++ programming

好文要頂

關注我收藏該文

lvpengms

關注 - 1

粉絲 - 54

+加關注1 0

poj 3652 persistent bits (模擬)

poj 1652 holey cloth (bfs)

posted on 2010-04-10 10:54收藏

bitset的簡單用法

1.標頭檔案 include 2.基本操作 bitsetb b有n位,每位都為0.引數n可以為乙個表示式.如bitset 5 b,則 b 為 00000 bitsetb unsigned long u b有n位,並用u賦值 如果u超過n位,則頂端被截除 如 bitset 5 b 5 則 b 為 00...

bitset 用法整理

建構函式 bitsetb b有n位,每位都為0.引數n可以為乙個表示式.如bitset 5 b0 則 b0 為 00000 bitsetb unsigned long u b有n位,並用u賦值 如果u超過n位,則頂端被截除 如 bitset 5 b0 5 則 b0 為 00101 bitsetb s...

bitset用法整理

bitset用法整理 2008 01 17 14 15 建構函式 bitsetb b有n位,每位都為0.引數n可以為乙個表示式.如bitset 5 b0 則 b0 為 00000 bitsetb unsigned long u b有n位,並用u賦值 如果u超過n位,則頂端被截除 如 bitset 5...