queue
는 대표적인 FIFO(First In First Out)
구조로, C++ 표준 라이브러리에 있는 컨테이너 중 하나다. 가장 처음에 들어간 데이터가 가장 처음으로 빠져오는 형태이며, stack
과 달리 가장 앞 원소와 가장 뒤에 있는 원소에 접근할 수 있다는 것이 특징이다.
queue
는 데이터를 일시적으로 쌓아두기 위한 자료구조이며, 사전적 의미와 같이 줄을 서서 기다리는 것과 같은 형태를 한다.
queue
를 사용하기 위해서는 아래와 같이 header 파일을 include 해준다.
#include <queue>
기본적인 queue
의 선언 및 초기화는 아래와 같다.
// 기본적인 queue 선언
// queue<자료형> 변수이름;
queue<int> q;
push
를 사용하여 queue
에 데이터를 추가할 수 있다.
// queue.push(데이터);
q.push(1);
pop
method를 이용하여 queue
의 데이터를 삭제할 수 있으며, FIFO
이므로 가장 처음에 들어갔던 데이터가 삭제된다.
// queue.pop();
q.pop();
queue
역시 다른 STL과 마찬가지로 데이터 접근과 크기 출력, 비어있는지에 대한 여부를 아래의 method들로 확인할 수 있다.
// queue 가장 첫번째 원소 조회
q.front();
// queue 가장 마지막 원소 조회
q.back();
// queue가 비어있는지 확인 (비어있으면 True, 아니면 False)
q.empty();
// queue의 크기 조회
q.size();
// 두개의 queue의 데이터를 서로 바꾸기
swap(q1, q2);