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