天天看點

bitset的用法

作為一個蒟蒻選手,會的東西不多,就學一下這些亂七八糟的東西吧

前言

下面内容借鑒了很多部落格,這裡就不一一列舉了。。

主要就是把我覺得有用的搬了過來,不喜勿噴

正文

需要的頭檔案

#include<bitset>
using namespace std;
           

定義方法

bitset<你要的大小> bi
           

指派

直接像變量一樣用就好了

a[x]=或a[x]=
           

與bool的巨大差別

可以用一切運算符,想<<,>>,^,|,&等,和二進制一樣

一些常用的函數(當然是自帶的啦,難道還要你寫?)

bool any( )

是否存在置為1的二進制位?和none()相反

bool none( )

是否不存在置為1的二進制位,即全部為0?和any()相反.

size_t count( )

二進制位為1的個數.

size_t size( )

二進制位的個數

flip()

把所有二進制位逐位取反

set()

把所有二進制位都置為1

set(pos)

把在pos處的二進制位置為1

reset()

把所有二進制位都置為0

count()

獲得由多少個1

然後相對比bool,據說時間有了優化。。具體是多少不打清楚。。

但看4810: [Ynoi2017]由乃的玉米田的題解,好像是/32

但至少功能比bool多啦