2025.0309
1. Adaptors
: sequence container를 가지고
각각의 자료구조(stack, queue, priorty_queue )에 맞는 인터페이스만 제공 해주는 컨테이너
=> 그래서 제한 사항이 많음.
iterator 제공X
중간원소 접근 X
* stack : top only : 보통 vector나 deque로 간단하게 이용 가능함.
* queue : front, back only : BFS에서 주로 사용 : 배열로도 구현 가능
=> 성능에 민감하면 stack이나 queue는 굳이..?
*priority_queue: top only
: 느리긴 하지만 직접 구현하려면 귀찮기는 해서 자주 사용하게 됨.
- 빈번한 삽입, 삭제 속에서 우선순위 구하는 경우에 사용함
- set,map에 비해 활용성 떨어짐.
- 정렬기준 가장 오른쪽 원소가 top으로 올라옴
defalt : max pq
2. stack
#include <stack>
Last Input, First Out
항상 top만 접근 가능함
template<
class T,
class Container = std::deque<T>
> class stack;
|
|
|
|
top()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
top()
|
|
|
|
|
|
|
push(x)
|
|
|
|
x
|
|
|
|
|
|
|
|
|
|
top()
|
|
|
|
|
|
|
|
pop()
|
|
|
|
x
|
|
|
|
|
|
stack<T> st
st = {} //clear - clear가 따로 없어서 이렇게 클리어함.
void st.push(T)
void st.pop()
T st.top()
int st.size()
bool st.empty()
3. queue
#include <queue>
First Input First Out
항상 front, back만 접근 가능.
|
-> 선입
|
|
-> 선출
|
template<
class T,
class Container = std::deque<T>
> class stack;
|
|
front()
|
|
back()
|
|
|
|
|
|
|
|
|
|
|
|
front()
|
|
|
back()
|
|
|
push(x)
|
|
|
|
x
|
|
|
|
|
front()
|
|
back()
|
|
|
pop()
|
|
|
|
x
|
|
queue<T> q
q = {} //clear - clear가 따로 없어서 이렇게 클리어함.
void q.push(T)
void q.pop()
T q.front()
T q.back()
int q.size()
bool q.empty()
'C++ > STL' 카테고리의 다른 글
| [STL] Priority Queue(2) - Lazy Update (1) | 2025.06.17 |
|---|---|
| [STL] Priority Queue(1) - heap, sort, compair 설정 (0) | 2025.06.16 |
| [STL] String (0) | 2025.06.13 |
| [STL] Deque, List (1) | 2025.06.12 |
| [STL] Vector (0) | 2025.06.12 |