[C++] std::queue
<정의>
- 큐(Queue)는 대표적인 FIFO(First In First Out) 구조이고, 제일 처음에 넣은 데이터가 처음으로 빠져나온다.
- 큐의 기본함수에는 push, pop, empty, front, back, swap 등이 있다.
- 스택과 달리 front 원소와 back 원소에 접근할 수 있다는 점이 특징이다.
<선언>
#include <queue>
queue<int> q;
<주의할 점>
- 만약 queue에 저장된 데이터를 탐색(검색)하고자 한다면 pop을 통해 하나씩 다 꺼내보는 방법 밖에 없다. iterator 자체가 없으니까 당연히 begin, end 함수도 존재하지 않는다.
- 만약 queue에서 탐색이 필요하다면 deque를 사용하자. 하지만 deque는 queue와 stack의 기능을 합쳐놓은 형태의 자료구조인 만큼 검색의 효율성이 많이 떨어지므로 자료가 많고, 탐색 빈도가 높다면 list를 사용하는 것을 추천한다.
<함수>
- 큐에 데이터 추가
큐이름.push(데이터) 형태로 데이터를 추가한다.
queue.push(element)
- 큐에 데이터 삭제
큐이름.pop( ) 형태로 큐의 front 데이터를 삭제한다.
queue.pop()
- 큐의 첫번째 데이터 반환
큐이름.front() 형태로 제일 최상위 데이터를 반환한다.
queue.front()
- 큐의 마지막 데이터 반환
큐이름.back() 형태로 제일 마지막 데이터를 반환한다.
queue.back()
- 큐의 사이즈 반환
큐이름. size() 형태로 큐의 현재 사이즈를 반환한다.
queue.size()
- 큐가 비어있는 지 확인
큐이름.empty() 형태로 큐가 비어있는 지 확인한다.
queue.empty()
- 큐 SWAP : 두 큐의 내용 바꾸기
큐1과 큐2 두 큐의 내용을 바꾸고 싶은 경우, 내장된 swap 함수를 사용한다.
swap(큐1 이름, 큐2 이름) 형태로 두 큐의 내용을 바꾼다.
swap(queue1 , queue2)