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);