목차
1. std::stack
- LIFO (Last In First Out : 후입선출) 데이터 구조
ㄴ 마지막에 삽입된 데이터가 가장 먼저 삭제된다.
(사용처 예시 : ctrl + z, DFS(깊이 우선 탐색) )
- deque를 바탕으로 만들어져 있다.
가. 선언 및 초기화
template<typename T> //template ≒ 자유 자료형
std::stack<T> //T : 배열에 담길 자료형
- stack<int> s1; // 빈 스택 생성
- stack<char> s2( {'a', 'b', 'c'} ) // 생성과 동시에 초기화
- stack<char> s3(s2); // s2의 값을 복사하여 s3 스택 생성
나. 멤버 함수 (※ 기준 : stack<int> s( {'1', '2', '3'}; )
Element access(요소 접근) | |
s.top() | 최상위 요소를 반환한다. (예시 기준 3) |
Capacity(용량) | |
s.empty() | 스택이 비어있는지 확인하고 bool 값 반환 |
s.size() | 스택의 크기를 반환한다. |
Modifiers(수식어) | |
s.push(num) | 맨 위에 num을 삽입한다. |
s.emplace(num) | 맨 위에 num을 삽입한다. |
s.pop() | 최상위 요소를 제거한다. |
s.swap(s2) | s와 s2의 인자를 교환한다. |
2. std::queue
- FIFO (First In First Out : 선입선출) 데이터 구조
ㄴ 먼저 삽입된 데이터가 먼저 삭제된다.
(사용처 예시 : 컴퓨터 버퍼, BFS(넓이 우선 탐색) )
가. 선언 및 초기화
template<typename T>
std::queue<T>
- queue<int> q1; // 빈 스택 생성
- queue<char> q2( {'a', 'b', 'c'} ) // 생성과 동시에 초기화
- queue<char> q3(q2); // q2의 값을 복사하여 q3 스택 생성
나. 멤버함수 (※ 기준 : queue<int> q( {1,2,3}; )
Element access(요소 접근) | |
q.front() | 첫 번째 요소 반환 (예시 기준 1) |
q.back() | 마지막 요소 반환 (예시 기준 3) |
Capacity(용량) | |
q.empty() | 큐가 비어있는지 확인하고 bool 값 반환 |
q.size() | 큐의 크기를 반환한다. |
Modifiers(수식어) | |
q.push(num) | 끝에 num을 삽입한다. |
q.emplace(num) | 끝에 num을 삽입한다. |
q.pop() | 첫번째 요소를 제거한다. |
q.swap(q2) | q와 q2의 인자를 교환한다. |
※ 참조
c++ reference : https://en.cppreference.com/