#include<bister>
using std::bitset;
一句話定義:可自定義位數,用作記錄二進制的數據類型.
一,定義和初始化
bitset<n> b; //b有n位,每位都爲0;
bitset<n> b(u); //b是unsigned long型u的副本
bitset<n> b(s); //b是string對象s中含有n位字符串的副本
bitset<n> b(s, pos, n); //b是s中從pos位置開始的n個位置的副本
bitset<n> b(s,pos); //b從s的pos位置開始取值到s末尾(注取的值從b的右端開始)
注:①n定義的位數在初始化時按初始值填充,賦值超出的範圍捨去,空餘的以零填充.
②bitset從string對象讀入位集時按從右到左的順序.
二,操作
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; //返回一個同值得unsigned long值
os << b; //把b中位集輸出