더북(TheBook)

3.3 | queue<T> 컨테이너 어댑터 생성과 사용하기

 

queue<T> 컨테이너에서는 첫 번째와 마지막 원소만 접근할 수 있다. 새 원소는 큐의 뒤에서만 추가할 수 있고, 원소 제거는 앞에서만 할 수 있다. 많은 애플리케이션에서 큐를 사용한다. 큐 컨테이너는 마트 계산대 줄에도 쓰이고, 서버에서 처리되기를 기다리는 데이터베이스 트랜잭션 순차열로도 쓰인다. 선입선출(first-in first-out, FIFO)로 처리되어야 하는 순차열이면 queue 컨테이너 어댑터를 고려할 수 있다. 그림 3-2는 큐의 기본 연산을 보여준다.

▲ 그림 3-2 queue 컨테이너

 

queue 생성 옵션은 stack 생성 옵션과 비슷하다. string 객체를 저장하는 queue를 생성하는 코드는 다음과 같다.

std::queue<std::string> words;

복제 생성자도 이용할 수 있다.

std::queue<std::string> copy_words {words}; // words의 복제본

stack<T>와 마찬가지로 queue<T> 어댑터도 기본은 deque<T> 컨테이너를 래핑하지만, 템플릿 타입을 지정하는 두 번째 인수에 다른 컨테이너를 지정할 수 있다.

std::queue<std::string, std::list<std::string>> words;

기반 컨테이너 타입은 front(), back(), push_back(), pop_front(), empty(size()를 반드시 제공해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.