stack
C++의 std::stack은 LIFO(Last In, First Out) 원칙을 따르는 컨테이너 어댑터입니다. 즉, 마지막에 추가된 요소가 가장 먼저 제거됩니다. 스택은 주로 데이터를 순차적으로 쌓고, 나중에 하나씩 꺼내는 방식으로 사용됩니다.
1. std::stack의 특징
- LIFO 구조:
- 마지막에 삽입된 요소가 가장 먼저 삭제됩니다.
- 컨테이너 어댑터:
- std::stack은 자체적인 데이터 구조가 아니라 다른 컨테이너(기본값: std::deque)를 기반으로 동작합니다.
- 내부적으로 deque, vector, 또는 list를 사용할 수 있습니다.
- 추가/제거 작업에 특화:
- 삽입(push)과 삭제(pop) 작업에 최적화되어 있습니다.
- 순차 접근 불가:
- 스택에서는 요소를 순차적으로 탐색하거나 접근하는 메서드가 제공되지 않습니다.
2. 헤더 파일
std::stack을 사용하려면 <stack> 헤더 파일을 포함해야 합니다.
3. 선언 및 초기화
4. 주요 멤버 함수
push(val) | 스택의 맨 위에 요소를 추가. |
pop() | 스택의 맨 위 요소를 제거. |
top() | 스택의 맨 위 요소를 반환. |
empty() | 스택이 비어 있으면 true, 아니면 false를 반환. |
size() | 스택에 포함된 요소의 개수를 반환. |
emplace(val) | 직접 생성자를 호출하여 요소를 스택의 맨 위에 추가. |
'C++ > STL 컨테이너' 카테고리의 다른 글
STL 컨테이너 - priority_queue (0) | 2025.01.07 |
---|---|
STL 컨테이너 - queue (0) | 2025.01.07 |
STL 컨테이너 - list (0) | 2025.01.07 |
STL 컨테이너 - vector (0) | 2025.01.07 |
STL 컨테이너 - array (0) | 2025.01.07 |