다른 컨테이너의 인터페이스를 변경한 컨테이너
LIFO 방식의 컨테이너를 구현한 템플릿 클래스
#include <stack>
stack<데이터 타입> 이름;
// ex.
stack<int> s;
stack<데이터 타입, 컨테이너 타입> 이름;
// 기본 컨테이너 타입 : deque<T>
// ㄴ empty(), size(), push_back(), pop_back(), back() 등의 인터페이스를 제공하는 컨테이너여야함.
// ㄴ vector, deque, list 사용 가능
// ex.
stack<int, list<int>> q;
bool empty() const
size_type size() const
void push(const value_type& x)
void pop()
(const) value_type& top() (const)
==
!=
<
>
<=
>=
FIFO 방식의 컨테이너를 구현한 템플릿 클래스
#include <quque>
quque<데이터 타입> 이름;
// ex.
quque<int> q;
quque<데이터 타입, 컨테이너 타입> 이름;
// 기본 컨테이너 타입 : deque<T>
// ㄴ empty(), size(), push_back(), pop_front(), front() 등의 인터페이스를 제공하는 컨테이너여야함.
// ㄴ deque, list 사용 가능
// ex.
quque<int, list<int>> q;
bool empty() const
size_type size() const
void push(const value_type& x)
void pop()
(const) value_type& front() (const)
(const) value_type& back() (const)
==
!=
<
>
<=
>=
특정 정렬 기준으로 원소의 우선순위가 결정된다.
내부적으로 STL의 힙 알고리즘인 make_heap()
, push_heap()
, pop_heap()
을 사용하여 구현되어 있다.
#include <quque>
priority_queue<데이터 타입> 이름;
// ex.
priority_queue<int> pq;
priority_queue<데이터 타입, 컨테이너 타입, 정렬 기준> 이름;
// 기본 컨테이너 타입 : vector<T>
// ㄴ 임의 접근 반복자를 제공하는 컨테이너이다.
// ㄴ empty(), size(), push_back(), pop_back(), front() 등의 인터페이스를 제공하는 컨테이너여야함.
// ㄴ deque, vector 가능
// 기본 정렬 기준 : less<T>
// ex.
priority_queue<int, deque<int>, greator<int>> pq;