rueki
C++ STL 큐(QUEUE) 본문
728x90
반응형
C++에서 Queue 역시 선언해서 사용할 수가 있다.
- Push
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myqueue;
int myint;
cout << "정수를 입력하세요.(0:종료)" << '\n';
do
{
cin >> myint;
myqueue.push(myint);
} while (myint);
cout << "Queue 안에 있는 것 :";
while (!myqueue.empty())
{
cout << myqueue.front()<<' ';
myqueue.pop();
}
cout << '\n';
return 0;
}
큐안에 원소들을 push하고 큐가 빈 상태가 될 때까지 큐의 맨 앞의 원소들을 읽고 pop을 하는 코드이다.
큐는 선입선출 구조이기 때문에, 먼저 들어온 순대로 먼저 값을 빼낼 수가 있다.
1,2,3,4,5 순대로 push를 하고 pop을 할때도 1 2 3 4 5 순으로 꺼내지게 된다.
- Size
큐의 크기를 알 수 있는 함수이다.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myqueue;
cout << "0. size : " << myqueue.size() << '\n';
for (int i = 0; i < 5; i++)myqueue.push(i);
cout << "1. size : " << myqueue.size()<<'\n';
myqueue.pop();
cout << "2. size : " << myqueue.size() << '\n';
return 0;
}
큐를 생성하고는 빈 큐이기 때문에 크기가 0이다.
0부터 4까지 큐에 넣은 후에는 큐의 크기는 5가 되고 원소 하나를 pop 했으니, 크기는 4가 된다.
- Swap
두 개의 큐 내부 원소들을 바꿀 수 있는 함수이다.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> myqueue;
queue<int> myqueue2;
for (int i = 0; i < 5; i++)
myqueue.push(i);
for (int j = 6; j <= 10; j++)
myqueue2.push(j);
myqueue.swap(myqueue2);
for (int i = 0; i < 5; i++) {
cout << myqueue.front()<<' ';
myqueue.pop();
}
cout << '\n';
for (int i = 0; i < 5; i++) {
cout << myqueue2.front()<<' ';
myqueue2.pop();
}
return 0;
}
myqueue 에 0,1,2,3,4 입력, myqueue2에 6,7,8,9,10 입력 후 swap을 통해
원소가 서로 바뀐 것을 확인할 수가 있다.
728x90
반응형
'C,C++ 기초 및 자료구조' 카테고리의 다른 글
6. 선택 정렬 (Selection Sort) (0) | 2020.03.25 |
---|---|
5. 버블 정렬 (Bubble Sort) (0) | 2020.03.21 |
3.1 C++ STL 스택 (0) | 2020.03.11 |
4. 큐 (Queue) (0) | 2020.03.08 |
3. 스택 (0) | 2020.03.05 |
Comments