C++/C++ STL

stack

재윤 2024. 2. 9. 19:23
반응형

stack

C++ 표준 라이브러리의 std::stack은 스택(stack)을 구현한 어댑터 컨테이너이다. 스택은 LIFO(Last In, First Out) 데이터 구조로, 가장 최근에 삽입된 요소가 가장 먼저 제거된다. std::stack은 기본적으로 다른 컨테이너(주로 std::deque, std::list, std::vector)를 내부적으로 사용하여 스택을 구현.

stack 기본 사용법

  • 헤더 파일 포함
#include <stack>
  • 스택 선언
std::stack<int> myStack; // int 형 스택 선언
  • 원소 추가

→ push(): 스택의 상단에 원소를 추가.

myStack.push(10);
myStack.push(20);
myStack.push(30);
  • 원소 제거

→ pop(): 스택의 상단에 있는 원소를 제거.

myStack.pop(); // 30이 제거
  • 상단 원소 접근
int topElement = myStack.top(); // topElement에는 20이 저장됩니다.
  • 스택이 비어있는지 확인

→ empty(): 스택이 비어있으면 true를 반환하고, 그렇지 않으면 false를 반환.

if (myStack.empty()) {
    std::cout << "Stack is empty" << std::endl;
} else {
    std::cout << "Stack is not empty" << std::endl;
}

스택의 상단에 있는 요소만 접근할 수 있으므로, 반복자와 같은 직접적인 요소 접근 방법은 제공하지 않는다.

반응형

'C++ > C++ STL' 카테고리의 다른 글

list  (0) 2024.02.09
vector  (1) 2024.02.09
STL, 컨테이너, 반복자 개념  (0) 2024.02.09