본문 바로가기
공부하다 생긴 의문

[C++] bitset 라이브러리

by 재능없는 컴과생 2024. 9. 30.

- 비트셋(Bitset)이용 방법 및 함수

#include <bitset>를 이용

bitset<개수> 이름; :: bitset 선언 -> int형으로 선언

bit.set() :: 전체 비트를 1로 셋팅

bit.set(n, true/false) :: n+1번째 비트를 1또는 0으로 셋팅

bit.reset() :: 전체 비트를 0으로 리셋

bit.size() :: bitset의 크기를 구한다.

bit.any() :: 비트셋 중 하나라도 1이면 1을 반환, 모두 0일때만 0을 반환

bit.none() :: 비트셋 중 모두가 0이어야 1을 반환

bit.flip() :: 전체 비트를 반전

bit.flip(n) :: n+1번째 비트를 반전

bit.test(n) :: n+1번째 비트를 검사(1인지 0인지)

bit.to_string() :: 전체 비트를 string화 시킨다.

bit.to_ulong() / bit.to_ullong() :: 전체 비트를 unsigned long / unsigned long long 의 값으로 바꿔준다.

bit.test[4] == bit[4] :: 배열처럼 이용이 가능하다.

bit.count() -> 1의 개수를 세는 함수, return int

bit.size() - bit.count() -> 0의 개수를 세는 방법, return int

 

비트마스킹 문제를 풀다보면, 이런게 있으면 좋겠다 싶은게 있었는데

찾아보니 있었다. 코딩테스트에 쓸 일은 없을것 같은데, 백준 풀면서 한번씩 써보기 좋을것 같다.