使用bitset需要引用標頭檔案。
賦值
#include
using namespace std;
bitset<8>s;
int main())o(wn)
test有乙個引數pos,返回乙個bitset內第pos位的值。
s.reset();
s.set(7);
int k = s.test(7); // k is true
k = s.test(6); // k is false
test的時間複雜度為 o(1)o(1)
bitset有乙個成員函式為any,返回乙個布林量。若bitset內部存在一位的值為1,則返回true,否則返回false:
s.clear();
bool k = s.any(); //k is false
s[1] = true;
k = s.any() //k is true
複雜度同上。按照不同編譯器版本的實現方法,.any()的常數甚至有可能小於理論值。
與any相對,返回乙個布林量,不存在任何乙個位置的值為1則返回true,否則返回false。
s.clear();
bool k = s.none(); //k is true
s[1] = true;
k = s.none() //k is false
count返回乙個bitset內1的個數,是乙個無符號整形:
s.reset();
int k = s.count(); // k is 0
s[1] = true;
k = s.count(); // k is 1
需要注意的是目前扶蘇已知的資料中,count的複雜度也是 o(\frac)o(wn) 。
當然想知道0的個數可以用總長度減去count嘍
flip函式類似於按位取反,它的兩個宣告如下:
bitset& flip();
bitset& flip (size_t pos);
當呼叫s.flip()且括號內無引數時,會將集合內所有元素取反(0變1,1變0)
當呼叫s.flip(x)時,會將第x位取反(從0編號)
s.reset();
s[1] = true; //s is "01000000"
s.flip(); //s is "10111111"
s.flip(1); //s is "11111111"
工具應用 Git命令使用的超級簡化流程
git是當今最流行的版本控制系統,之所以最為流行,主要是因為兩大亮點,開源和分布式。免費的東西,大家都喜歡,而且kk大神在 必然 中也做過分析和 開源和免費,是平台軟體產品發展的必然,未來世界需要付費的,基本都是需要根據具體需求進行定製化的內容。分布式的特點,是git與svn的最大區別,優勢在於更加...
OpenGL 3D 超級寶典學習筆記
2d笛卡兒座標 由乙個x座標和乙個y座標構成,x座標測量水平方向的位置,而y座標則測試垂直方向的位置,原點 x 0,y 0 兩根軸從負無窮擴充套件到正無窮,兩軸垂直相交。視口viewport 裁剪區域的高度與寬度一般不與視窗的寬度與高度相匹配,因此座標系統從邏輯笛卡兒座標對映到物理螢幕畫素座標,這種...
CSS筆記2(簡化版)
list style none 後可跟4個值 左上 右上 右下 左下 兩個值的話則是對角線關係 border radius 10px 可以設定為50 border top left radius 左上角 box shadow h shadow v shadow blur 虛實 spread 大小 c...