본문 바로가기
프로그래밍/C++

C++ ] std::stack 사용법

by eteo 2024. 3. 20.

 

 

 

 

C++의 std::stack은 STL(Standard Template Library)의 일부로 후입선출(LIFO: Last In, First Out) 방식을 따르는 자료구조이며 데이터의 삽입(push)과 삭제(pop)가 한 쪽 끝에서만 이루어지는 특징을 가지고 있다.

 

 

 

1. stack 헤더 파일 포함

#include <stack>

 

 

 

2. stack 객체 생성

std::stack<int> myStack;

 

 

 

3. 요소 삽입 (push)

myStack.push(10);

 

 

 

4. 요소 제거 (pop)

myStack.pop();

 

 

 

5. 최상위 요소 접근 (top)

std::cout << "Top element: " << myStack.top() << std::endl;

 

 

 

6. stack 크기 확인 (size)

std::cout << "Stack size: " << myStack.size() << std::endl;

 

 

 

7. stack이 비어있는지 확인 (empty)

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

 

 

 

 

사용 예시

#include <iostream>
#include <stack>

using namespace std;

int main() {
    stack<int> myStack;

    // 요소 삽입
    myStack.push(10);
    myStack.push(20);

    // 최상위 요소 접근 및 출력
    cout << "Top element: " << myStack.top() << endl;

    // 요소 제거
    myStack.pop();

    // Stack 크기 확인 및 출력
    cout << "Stack size: " << myStack.size() << endl;

    // Stack 비어 있는지 확인 및 출력
    if (myStack.empty()) {
        cout << "Stack is empty" << endl;
    } else {
        cout << "Stack is not empty" << endl;
    }

    return 0;
}