C bitset學習筆記(超級簡化)

2022-08-19 18:15:13 字數 1523 閱讀 4655

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