stack

hyenam·2022년 4월 27일
0

ft_containers

목록 보기
7/8

스택은 덱기반의 컨테이너 어뎁터이다.
먼저 들어온것이 가장 늦게나가고, 가장 늦게 들어온 것이 가장 먼저나가는 자료구조이다.
줄여서 LIFO(Last-in Fisrt-Out) stack이라고도 부른다.

이렇게 늦게 들어올수록 먼저나가서 한방향으로만 삽입/삭제를 하는 것을 알 수 가 있다.

스택은

  • empty
  • size
  • back
  • push_back
  • pop_back

이러한 함수들이 동작하는 컨테이너 클래스의 캡슐화 된 개체를 기본 컨테이너로 사용한다.
그리고 이런 컨테이너 어뎁터로 구현된 요소에 접근할 수 있는 특정 멤버 함수 집합을 제공한다.

표준 컨테이너 클래스는 벡터, 덱 및 리스트가 이러한 요구 사항을 충족한다. 기본적으로 특정 스택 클래스 인스턴스화에 대해 컨테이너 클래스가 지정되지 않은 경우 표준 컨테이너 덱이 사용된다.

템플릿 매개변수

template <class T, class Container = deque<T> > class stack;
  • T - 요소의 타입.
  • Container - 기본 컨테이너의 유형. value_type은 T여야 한다.

멤버 타입(98기준)

    typedef Container                                container_type; // 컨테이너 유형
    typedef typename container_type::value_type      value_type; // 요소의 타입
    typedef typename container_type::size_type       size_type; // 보통 size_t와 같음

멤버 함수

  • 생성자
explicit stack (const container_type& ctnr = container_type());

컨테이너 어댑터는 내부적으로 컨테이너 개체를 데이터로 유지한다. 이 컨테이너 객체는 생성자에게 전달된 ctnr의 복사본이며, 그렇지 않으면 빈 컨테이너다.

  • empty - 스택이 비어 있는지 테스트한다. size의 값이 0인지의 여부 확인.
  • size - 요소의 개수를 반환한다.
  • top - 스택의 가장 위에 있는 요소를 반환한다. 스택에서 가장 위에 있는 요소는 가장 마지막에 들어온 요소를 뜻한다.
  • push - 요소를 스택에 집어넣는다. 이 함수는 컨테이너의 push_back 함수를 호출한다.
  • pop - 요소를 제거한다. 이 함수는 컨테이너의 pop_back 함수를 호출한다.

비 멤버함수

  • 관계 연산자 - ==, !=, <, <=, >, >=

profile
공부한 걸 정리하고 있습니다.

0개의 댓글

관련 채용 정보