인트로
안녕하세요. 오늘은 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
map 사용법 정리 바로가기
life-with-coding.tistory.com/305
'BE > C++' 카테고리의 다른 글
[C++][STL] Vector 기본 사용법 및 예제 활용 (1) | 2020.11.03 |
---|---|
[C++] 날짜를 초로 변환 (date to seconds) (0) | 2020.11.03 |
[C++][STL] Stack 기본 사용법 및 예제 (3) | 2020.11.03 |
[C++] 이차원 배열 동적할당하기 (0) | 2020.11.02 |
[C++] stringstream 사용법 (0) | 2020.10.30 |