- 비트셋(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
비트마스킹 문제를 풀다보면, 이런게 있으면 좋겠다 싶은게 있었는데
찾아보니 있었다. 코딩테스트에 쓸 일은 없을것 같은데, 백준 풀면서 한번씩 써보기 좋을것 같다.
'공부하다 생긴 의문' 카테고리의 다른 글
C++ 정렬시 오름차순, 내림차순 (1) | 2024.12.12 |
---|---|
C++ 에서 잘못된 Input을 받을때까지 입력 받기 (4) | 2024.09.30 |
[C++] stringstream 사용법 (2) | 2024.09.30 |