본문 바로가기
Develop/Ps

[C++] STL 스택(stack) 사용법

by J-rain 2023. 4. 13.

스택이란?

스택(Stack)은 대표적인 LIFO(Last In First Out) 구조이다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있다. 스택의 기본함수에는 push, pop, empty, top, swap 등이 있다.

 

 

Stack의 특징

1. 먼저 들어간 자료가 나중에 나옴 LIFO(Last In First Out) 구조
2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 
3. 인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰임
4. 그래프의 깊이 우선 탐색(DFS)에서 사용
5. 재귀적(Recursion) 함수를 호출 할 때 사용

 

스택 헤더 파일

stack STL을 사용하기 위해서는#include <stack>  헤더파일을 포함해야 한다 .

stack <데이터 타입> 이름 ; 으로 stack을 선언한다.

#include <stack>
stack<int> st;
stack<char> st;

 

 

스택 기본 함수

스택에 데이터 추가하기

st.push(element)

 

스택에 데이터 삭제하기 

스택이름.pop(데이터) 형태로 스택의 top 데이터를 삭제한다.

st.pop()

 

스택의 제일 위(탑, top) 데이터 반환

스택이름.top() 형태로 제일 최상위 데이터를 반환한다. 

st.top()

 

스택의 사이즈 반환

스택이름. size() 형태로 스택의 현재 사이즈를 반환한다. 

st.size()

 

스택이 비어있는 지 확인 

스택이름.empty() 형태로 스택이 비어있는 지 확인한다.

st.empty()

 

스택 SWAP  : 두 스택의 내용 바꾸기

스택1과 스택2 두 스택의 내용을 바꾸고 싶은 경우, 내장된 swap 함수를 사용한다. 

swap(스택1 이름, 스택2 이름) 형태로 두 스택의 내용을 바꾼다.

swap(st1,st2)

st1.swap(st2)     와 같다.

 

 

 

 

'Develop > Ps' 카테고리의 다른 글

[C++] STL pair 사용법  (0) 2023.07.18
[C++] STL sort함수 사용법  (0) 2023.07.18
[CS/C++] STL 덱(Deque) 사용법  (0) 2023.04.12
[CS/C++] STL 큐(Queue) 사용법  (0) 2023.04.11
BOJ(2609).cpp 유클리드 호제법  (0) 2023.04.05

댓글