큐(queue)는 컨테이너 어댑터(Container Adapter) 중 하나이다. (deque 기반)
queue 는 FIFO(First-In-First-Out) 구조로 제일 먼저 넣은 데이터가 처음으로 빠져나온다.

queue 는 제일 앞, 뒤가 아닌 원소들의 확인, 변경이 원칙적으로 불가능하다.
queue 에 대한 일반적인 연산의 복잡도는 다음과 같다.
O(1)O(1)O(1)queue 헤더파일#include <queue>
queue의 선언std::queue<Type> QueueName;
queue의 생성자 (편의상 int)| std::queue<int> q; | 비어있는 큐 q를 생성 |
|---|---|
| std::queue<int> q2(q1); | 큐 q1를 복사하여 큐 q2를 생성 |
std::queue<int> q;
| q.push(n) | 큐 맨 뒤에 원소 n 삽입 |
|---|---|
| q.pop() | 큐 맨 앞의 원소를 제거 |
| q.front() | 큐 맨 앞 원소의 참조를 반환 |
| q.back() | 큐 맨 뒤 원소의 참조를 반환 |
| q.size() | 원소의 개수를 반환 |
| q.empty() | 큐 q가 비어있으면 true를 반환 |
| q2.swap(q1) | q1 큐와 q2 큐를 서로 바꿈 |
#include <iostream>
#include <queue>
int main()
{
std::queue<int> q;
for (int i = 1; i <= 5; ++i)
{
q.push(i);
std::cout << q.front() << ", " << q.back() << std::endl;
}
std::cout << std::endl;
for (int i = 1; i <= 5; ++i)
{
std::cout << q.front() << ", " << q.back() << std::endl;
q.pop();
}
return 0;
}
1, 1
1, 2
1, 3
1, 4
1, 5
1, 5
2, 5
3, 5
4, 5
5, 5