bitset用法及應用(C STL庫)

2021-10-02 18:57:50 字數 2119 閱讀 2441

#include

bitset b; //b有n位,每位都為0

bitset b(u); //b是unsigned long型u的乙個副本

bitset b(s); //b是string物件s中含有的位串的副本

bitset b(s, pos, n); //b是s中位置pos開始的n個位的副本

eg.

(1)

bitset<

8> b;

輸出b:

0 0 0 0 0 0 0 0

(2)

bitset<

8>b(

192)

;

輸出b:

0 0 0 0 0 0 1 1 (輸出是從低位輸出,b[0]是低位,b[7]是高位)

(3)

bitset<

8>b(

"hello1323"

);

編譯報錯

(4)

bitset<

8>b(

"1101"

);

輸出b:

1 1 0 1 0 0 0 0 (字串中只能出現0和1,否則編譯報錯)

(5)

string str =

"11011110"

;bitset<

8>

b(str,1,2);

輸出b:

0 1 0 0 0 0 0 0

假設有乙個bitset物件b

b.any()

b中是否存在值為1的二進位制位?

b.none()

b中不存在值為1的二進位制位嗎?

b.count()

b中值為1的二進位制位的個數

b.size()

b中二進位制位的個數

b[pos]

訪問b中在pos處的二進位制位

b.test(pos)

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

b.set()

把b中所有二進位制位的值為1

b.set(pos)

把b中在pos處的二進位制位值為1

b.reset()

把b中所有二進位制位的值為0

b.reset(pos)

把b中在pos處的二進位制位值為0

b.flip()

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

b.flip(pos)

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

b.to_ulong()

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

os << b

把b中的位集輸出到os流

四、看道題目:

牛客練習賽22 c

題目描述

一共有 n個數,第 i 個數是 xi

xi 可以取 [li , ri] 中任意的乙個值。

設輸入描述:

第一行乙個數 n。

然後 n 行,每行兩個數表示 li,ri。

輸出描述:

輸出一行乙個數表示答案。

示例1輸入複製5

1 22 3

3 44 5

5 6輸出

複製26

備註:1 ≤ n , li , ri ≤ 100

#include

#include

#include

#include

using

namespace std;

bitset <

100010

> b,t;

intmain()

b=t;

///滾動陣列賦值

}printf

("%d\n"

,b.count()

);}return0;

}

c STL通用容器 之 bitset容器

bitset 可以看作是二進位制位的容器,並提供了位的相關操作函式。常用函式 1 構造 賦值函式 bitset bitset const bitset 拷貝建構函式 bitset unsignedlong val 由無符號長整形數構建位容器 bitset const string str,size ...

C STL之bitset位集合容器

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

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...