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;