queue
queue (std::queue — FIFO 큐)
std::queue는 컨테이너 어댑터로, FIFO(first-in, first-out) 데이터 구조인 큐의 기능을 제공해요. 내부 컨테이너의 뒤쪽에서 push하고 앞쪽에서 pop해요.
출처: cppreference
본문
std::queue 클래스 템플릿은 FIFO(선입선출) 데이터 구조인 큐의 기능을 제공하는 컨테이너 어댑터예요. 클래스 템플릿은 내부 컨테이너를 감싸는 래퍼 역할을 하며, 특정 함수 집합만 제공해요. 큐는 원소를 내부 컨테이너의 뒤쪽에 push하고 앞쪽에서 pop해요.
std::queue의 모든 멤버 함수는 constexpr이라 상수 표현식 평가에서 객체를 만들고 쓸 수 있어요. 다만 constexpr std::queue 변수를 정의하는 건 보통 오류예요. 상수 평가는 동적 할당 저장소가 같은 평가에서 해제되길 요구하는데, std::queue의 초기화에서는 보통 그렇지 않기 때문이에요. (since C++26)
템플릿 매개변수
T: 저장된 원소의 타입.Container: 원소를 보관하는 데 쓰는 내부 컨테이너의 타입. 기본값은std::deque<T>.
멤버 타입
container_type=Containervalue_type=Container::value_typesize_type=Container::size_typereference/const_reference— 참조 타입
멤버 함수
- 생성자/파괴자,
operator= - 원소 접근:
front,back - 용량:
empty,size - 수정자:
push,push_range,emplace,pop,swap - 비멤버 함수:
operator==,operator<=>(C++20),std::swap
참고
std::queue는 입출력/생성 시점에 대해 명시하지 않아요. 기본적으로 FIFO이지만 파생 어댑터에서 pop을 재정의하면 다른 순서(예: LIFO)도 구현 가능해요.