4. c++ STL queue

han811·2021년 2월 8일
0

c++

목록 보기
4/14
post-thumbnail
  • 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;
}
  • queue 헤더 안에는 priority_queue도 존재합니다.
#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;

}
  • priority_queue<T,Container,Compare>로 선언하며, push,pop,top,empty,size의 멤버함수를 사용합니다.

reference

profile
han811

0개의 댓글