C++/STL 컨테이너

STL 컨테이너 - stack

coding-potato 2025. 1. 7. 18:13

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