stack
stack (std::stack — LIFO 스택)
std::stack은 컨테이너 어댑터로, LIFO(last-in, first-out) 데이터 구조인 스택의 기능을 제공해요. 내부 컨테이너의 뒤쪽에서 원소를 push하고 pop해요(이 위치를 스택의 top이라 불러요).
출처: cppreference
본문
std::stack 클래스는 LIFO(후입선출) 데이터 구조인 스택의 기능을 제공하는 컨테이너 어댑터예요. 클래스 템플릿은 내부 컨테이너를 감싸는 래퍼 역할을 하며, 특정 함수 집합만 제공해요. 스택은 내부 컨테이너의 뒤쪽(top)에서 원소를 push하고 pop해요.
std::stack의 모든 멤버 함수는 constexpr이라 상수 표현식 평가에서 객체를 만들고 쓸 수 있어요. 다만 constexpr std::stack 변수를 정의하는 건 보통 오류예요. (since C++26)
템플릿 매개변수
T: 저장된 원소의 타입.Container: 원소를 보관하는 데 쓰는 내부 컨테이너의 타입. 기본값은std::deque<T>.
멤버 타입
container_type=Containervalue_type=Container::value_typesize_type=Container::size_typereference/const_reference— 참조 타입
멤버 함수
- 생성자/파괴자,
operator= - 원소 접근:
top - 용량:
empty,size - 수정자:
push,push_range,emplace,pop,swap - 비멤버 함수:
operator==,operator<=>(C++20),std::swap
참고
std::stack은 기본적으로 LIFO이지만 파생 어댑터에서 pop을 재정의하면 다른 순서도 구현 가능해요. 반복자(iterator)를 제공하지 않아요.