c++ STL stack 과 마찮가지로 container가 아닌 container로 구현된 클래스입니다.
기본 함수
emtpy() : 비어있는지 여부 true or false 반환
size() : 원소 수 반환
push(n) : n을 맨 뒤에 원소 추가
pop() : 맨 앞의 원소 삭제 - 비어있을 시 segment fault 발생
front() : 맨 앞의 원소 반환 - 비어있을 시 segment fault 발생
back() : 맨 뒤의 원소 반환 - 비어있을 시 segment fault 발생
사용법
#include <iostream>
#include <queue>
using namespace std;
int main(){
// 큐 생성
queue<int> q;
// push
q.push(1);
q.push(2);
q.push(3);
q.push(4);
q.push(5);
q.push(6);
// pop
q.pop();
q.pop();
q.pop();
// front
cout << "front element: " << q.front() << '\n';
// back
cout << "back element: " << q.back() << '\n';
// size
cout << "queue size: " << q.size() << '\n';
// empty
cout << "Is it empty?: " << (q.empty() ? "Yes" : "No") << '\n';
return 0;
}
#include <iostream>
#include <functional>
#include <queue>
using namespace std;
int main(){
// priority_queue
priority_queue< int, vector<int>, less<int> > pq;
// or priority_queue<int> pq;
// push(element)
pq.push(5);
pq.push(2);
pq.push(8);
pq.push(9);
pq.push(1);
pq.push(14);
// pop()
pq.pop();
pq.pop();
// top();
cout << "pq top: " << pq.top() << '\n';
// empty(), size()
if(!pq.empty()) cout << "pq size: " << pq.size() << '\n';
// pop all
while(!pq.empty()){
cout << pq.top() << " ";
pq.pop();
}
cout << '\n';
return 0;
}
#include <iostream>
#include <functional>
#include <queue>
using namespace std;
int main(){
// priority_queue
priority_queue< int, vector<int>, greater<int> > pq;
// push(element)
pq.push(5);
pq.push(2);
pq.push(8);
pq.push(9);
pq.push(1);
pq.push(14);
// pop()
pq.pop();
pq.pop();
// top();
cout << "pq top: " << pq.top() << '\n';
// empty(), size()
if(!pq.empty()) cout << "pq size: " << pq.size() << '\n';
// pop all
while(!pq.empty()){
cout << pq.top() << " ";
pq.pop();
}
cout << '\n';
return 0;
}