C++ | stack 정리
포스트
취소

C++ | stack 정리

Stack

Stack은 FILO 구조로 원소를 저장하고 가져올수 있는 자료구조다.

예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stack>

int main() {
    std::stack<int> s; // 선언 

    // 원소 추가
    ls.push(1);
    ls.push(2);
    ls.push(3);

    // 원소 제거
    ls.pop();

    // 가장 위에 있는 원소 출력
    cout << ls.top() << endl;
}

필요 헤더

1
#include <stack>

선언

std::stack<자료형>

1
std::stack<int> s;

원소 추가 & 제거

std::stack::push()

std::stack::pop()

1
2
3
4
5
// stack에 맨 위에 원소를 추가한다
s.push(1);

// stack의 맨 위 원소를 삭제한다
s.pop();

원소 가져오기

std::stack::top()

1
2
// stack의 맨 위 원소를 리턴한다
int value = s.top();

기타

std::stack::size()

std::stack::empty()

1
2
3
4
5
// stack에 저장된 원소의 개수를 가져온다
int size = s.size();

// stack이 비었는지 여부를 가져온다
bool is_empty = s.empty();

원소 모두 제거하기

std::stack::swap()

stack은 clear() 같은 함수가 없기 때문에 아래와 같은

1
2
3
4
5
6
7
8
stack<int> st;
st.push(1);
st.push(2);

stack<int> empty;

// 두 stack의 값을 바꾸어 st 스택을 비운다
st.swap(empty);
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
바로가기