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 = Container
  • value_type = Container::value_type
  • size_type = Container::size_type
  • reference / const_reference — 참조 타입

멤버 함수

  • 생성자/파괴자, operator=
  • 원소 접근: top
  • 용량: empty, size
  • 수정자: push, push_range, emplace, pop, swap
  • 비멤버 함수: operator==, operator<=> (C++20), std::swap

참고

std::stack은 기본적으로 LIFO이지만 파생 어댑터에서 pop을 재정의하면 다른 순서도 구현 가능해요. 반복자(iterator)를 제공하지 않아요.

더 알아보기 (Learn more)

cppreference