본문 바로가기

BE/C++

[C++][STL] Queue 기본 사용법 및 예제

인트로
안녕하세요. 오늘은 C++의 STL중 하나인 Queue(큐) 기본 함수에 대해서 알아보도록 하겠습니다.
Queue 는 자료구조의 대표적인 FIFO(First In First Out)인 알고리즘으로, 코딩테스트에 많이 나오는 알고리즘입니다.

목차  
1. 큐란 ?
2. 큐 헤더 파일
3. 큐 기본 함수 (삽입/삭제, 사이즈, 예시 등)  

 

📌 1. 큐란?

큐(Queue)은 대표적인 FIFO(First In First Out) 구조입니다.
따라서 제일 처음에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있습니다.
큐의 기본함수에는 push, pop, empty, front, back, swap 등이 있습니다.
스택과 달리 front 원소와 back 원소에 접근할 수 있다는 점이 특징입니다.

출처 : 위키피디아

 

📌2. 큐 헤더 파일

Queue STL을 사용하기 위해서는 헤더파일을 포함해야 합니다 .
queue <데이터 타입> 이름 ; 으로 queue을 선언합니다.

#include <queue> queue<int> q;

 

📌3. 큐 기본 함수

▷ 큐에 데이터 추가하기
큐이름.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)


▷ 큐 기본 사용법 예시
1. 큐 q1 에는 1, 2, 3 데이터를 queue.push(element)함수를 사용해 삽입했습니다.
2. 큐 q2 에는 10, 20,30 데이터를 queue.push(element)함수를 사용해 삽입했습니다.
3. 큐 q1 큐 q2 를 바꾸어주었습니다.
4. 큐가 비어있을 때까지 queue.front 데이터를 출력하며 pop 해주었습니다.

#include <iostream> #include <queue> using namespace std; int main(void) { queue<int> q1; queue<int> q2; q1.push(1); q1.push(2); q1.push(3); q2.push(10); q2.push(20); q2.push(30); swap(q1, q2); while (!q1.empty()) { cout << q1.front() << endl; q1.pop(); } return 0; }


출력결과는 다음과 같습니다. 10 20 30 이 출력이 되었습니다.
q1에는 1,2,3 데이터를 넣었지만, q2와 SWAP 되어 10 20 30 데이터가 저장된 것을 볼 수 있습니다.

10 20 30


이상 C++ STL 중 하나인 큐 라이브러리에 대해 정리를 마치겠습니다 :D

궁금한 점은 아래 댓글로 남겨주세요. 감사합니다.

stack 사용법 정리 바로가기
life-with-coding.tistory.com/406

 

[C++][STL] stack 기본 사용법 정리

인트로 오늘은 C++의 STL중 하나인 Stack(스택) 기본 함수에 대해서 알아보도록 하겠습니다. 스택(Stack)은 대표적인 LIFO(Last In First Out) 구조입니다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠

life-with-coding.tistory.com


map 사용법 정리 바로가기
life-with-coding.tistory.com/305

 

[C++][STL] map 사용법 정리

--- 인트로 --- 오늘은 C++의 STL중 map을 알려드리겠습니다. map은 각 노드가 key와 value 쌍으로 이루어진 트리입니다. map의 내부 구현은 검색, 삽입, 삭제가 O(logn) 인 레드블랙트리로 구성되어 있습니

life-with-coding.tistory.com