[STL] 스택(stack) 기본 예제

2019. 7. 30. 00:20 기타/C++ STL

[STL] 스택(stack) 기본 예제


컨테이너 어댑터의 종류는 stack, queue, priority_queue 가 있다.


그중 대표적인 컨테이너 어댑터는 stack 이다.

stack은 LIFO(Last In First Out) 방식의 시퀀스이다.


empty, size, push_back, pop_back, back 의 인터페이스를 지원하는 컨테이너(시퀀스)는 모두 stack 컨테이너 어댑터를 사용하여 LIFO 방식의 스택으로 변환할 수 있다.

stack 컨테이너 어댑터의 디폴트 컨테이너는 deque 컨테이너이다.

#include <iostream>
#include <vector>
#include <stack>
using namespace std;


int main(){

    stack<int> st;  // default 는 deque 컨테이너 사용
    //stack<int, vector<int>> st;  vector 컨테이너를 이용하여 stack 컨테이너 생성

    st.push(10);    // 스택에 등록
    st.push(20);
    st.push(30);

    cout << st.top() << endl;    // 스택 제일 위의 요소 가져오기
    st.pop();                    // 스택 제일 위의 요소 제거
    cout << st.top() << endl;
    st.pop();
    cout << st.top() << endl;
    st.pop();
    
    if (st.empty())                // 스택이 비었는지 확인
        cout << "stack에 데이터 없음" << endl;

    return 0;
}



- stack<int> st : 디폴트 컨테이너 deque<int>를 사용하여 stack 컨테이너 객체를 생성한다.

- stack<int, vector<int>> st : vector 컨테이너를 적용한 정수를 저장하는 stack 컨테이너를 생성한다.

- st.push(x) : 스택에 데이터 x를 입력한다.

- st.pop() : 스택의 데이터를 삭제한다.

- st.top() : 스택의 데이터를 반환한다.

- st.empty() : 스택이 비어있는지 판단한다.



출처: https://hyeonstorage.tistory.com/321?category=614599 [개발이 하고 싶어요]

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

[STL] deque 정리 및 예제  (0) 2019.07.30
[STL] vector 벡터 정리 및 예제  (0) 2019.07.30
[STL] not2 함수  (0) 2019.07.30
[STL] 역방향 반복자 (reverse_iterator)  (1) 2019.07.30
[STL] sort() 정렬 예제  (0) 2019.07.30
[STL] find() 함수 예제  (0) 2019.07.30
[STL] 반복자 iterator 개념 및 예제  (0) 2019.07.30
[STL] less, greater, plus, minus 예제  (0) 2019.07.30