[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() : 데이터를 삭제







+ Recent posts