stack
스택은 stack 라이브러리에 들어있다.
함수 | 설명 |
---|---|
empty() | 비어있는지 |
size() | 크기 |
push(원소) | 추가 |
pop() | 가장 위 원소 제거(반환안함) |
top() | 가장 위 원소 반환 |
emplace(매개변수) | 원소를 생성과 동시에 삽입 |
queue
큐는 queue 라이브러이에 들어있다. 스택과 다르게 최상위 원소를 front()로 불러온다.
함수 | 설명 |
---|---|
empty() | 비어있는지 |
size() | 크기 |
push(원소) | 추가 |
pop() | 가장 위 원소 제거(반환안함) |
front() | 가장 위 원소 반환 |
emplace(매개변수) | 원소를 생성과 동시에 삽입 |
priority_queue
스택과 큐는 원소가 들어온 순서에 따라 우선순위를 가진다. 반면에 우선순위 큐는 원소의 값에 따라 우선순위를 가진다. 기본적으로 값이 큰 값 먼저 나간다. 우선순위 큐는 스택처럼 최상위 원소를 반환하는 함수가 top()이다.
#include <queue>
//기본적으로 내림차순(큰값이 먼저 나감)
std::priority_queue<int> pq;
//오름차순
std::priority_queue<int, vector<int>, greater<int>> q;
// 사용자 정의2
struct Compare {
bool operator()(const int& a, const int& b) {
return a > b; // 작은 값이 더 높은 우선순위를 갖도록 함
}
};
std::priority_queue<int, std::vector<int>, Compare> pq2;