C++
컨테이너 어댑터와 비트셋 컨테이너
Jagbbum
2023. 9. 23. 01:36
컨테이너 어댑터
컨테이너 어댑터란 다른 순차 컨테이너를 바탕으로 인터페이스를 다르게 래핑한 것을 말한다.
보다 단순한 인터페이스를 제공하기 위해 복수 항목을 삽입, 삭제하는 메서드와 항목 순회를 위한 반복자를 지원하지 않는다.
queue
-FIFO 시맨틱 구현
생성
#include <queue>
queue<int> q1;
룩업
- front()
- back()
삽입 메서드
- push()
- emplace() : 항목 타입의 인수 목록을 전달하여 마지막 항목으로 추가
삭제
- pop() : 첫 항목 제거
priority_queue
우선순위 큐는 우선순위가 높은 항목이 가장 앞에 오도록 한다.
- 바탕 vector와 deque을 사용 가능
생성
priority_queue<int, vector<int>, std::greater<int>> pq
위와 같이 생성할 수 있으며 greater을 less로 바꿔 사용할 수 있다.
stack
선입후출(FILO) 시멘틱을 구현
- 끝에서만 삽입 및 삭제가 발생하기 때문에 바탕 컨테이너 vector, list, deque 모두 가능
- 인터페이스는 priority_queue와 같음
비트셋 컨테이너
비트별로 on.off 상태를 저장하도록 관리되는 컨테이너
생성
bitset<10> bs
사용
bitset<10> bs
bs.set(3);
bs[8] = true;
auto str1 = "0011001100";
auto str2 = "0000111100";
bitset<10> bitsOne(str1);
bitset<10> bitsTwo(str2);
auto bits = bitsOne & bitsTwo;
set은 비트를 true로 설정한다.
[]로 해당하는 비트에 접근 가능하다.