[STL] C++ priority_queue 우선순위 큐
결과
결과 - int 오름차순
결과 - string 내림차순
코드
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int main() {
// priority_queue<int> q; // 내림차순
// priority_queue<int, vector<int>, less<int> > q; // 내림차순
priority_queue<int, vector<int>, greater<int> > q; // 오름차순
if (q.empty()) cout << "우선순위 큐가 비었습니다.\n";
q.push(4);
q.push(4);
q.push(2);
q.push(1);
q.push(3);
cout << "맨 위 : " << q.top() << "\n";
cout << "나가는 순서 : ";
while (!q.empty()) {
cout << q.top() << " ";
q.pop();
}
cout << "\n";
return 0;
}
우선순위 큐(priority_queue) : 스택(stack)과 큐(queue) 같은 자료형.
우선순위 큐는 각 원소들이 우선순위를 갖는다.
내림차순, 오름차순
- priority_queue는 기본적으로 내림차순으로 정렬한다.
- 오름차순으로 정렬하기 위해서는
priority_queue<int, vector<int>, greater<int> > q; // 오름차순
해야한다.
empty() : 큐가 비었는지 검사
push() : 데이터를 삽입
size() : 길이를 리턴
top() : 가장 우선순위가 높은 원소
- pop() 했을 시 가장 먼저 나간다.
pop() : 데이터를 삭제
'C++ > STL' 카테고리의 다른 글
[STL] C++ set, multiset, unordered_set (0) | 2020.04.11 |
---|---|
[STL] C++ deque 덱 생성 및 삽입, 삭제 (0) | 2020.04.08 |
[STL] C++ queue 생성 및 삽입, 삭제 (0) | 2020.04.07 |
[STL] C++ stack 생성 및 삽입, 삭제 (0) | 2020.03.31 |
C++ pair 사용하여 쌍으로 값저장 (0) | 2020.03.31 |