[C++][STL] Stack
스택 STL
- Stack은 “쌓다, 더미”라는 뜻으로, 쌓아올리 듯 데이터를 쌓는 자료구조이다. 스택은 후입선출의 형태를 띠는 자료구조이다. C++ 표준 라이브러리에 정의되어 있기 때문에 필요할 때마다 만들어 사용하지 않고 include하여 사용할 수 있다.
특징
- LIFO 후입선출
- 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리 영역에서 함
- 인터럽트 처리, 수식 계산, 운영체제에서 복귀 번지 저장에 쓰임
- 깊이 우선 탐색에서 사용
- 재귀적 함수를 호출할 때 사용
사용법
-
헤더파일
#include <stack>
- 선언
stack<int> stack;
-
기본함수
- 데이터 추가
stack.push(element);
- 데이터 삭제
stack.pop();
- 맨 위 데이터 반환
stack.top();
- 스택 사이즈 반환
stack.size();
- 공백 스택인지 확인
stack.empty();
- 두 스택 내용 바꾸기
swap(stack1, stack2);
- 데이터 추가