목차
1. 스택(Stack)이란?
2. 스택 헤더 파일
3. 스택 기본 함수
1. 스택이란?
스택(Stack)은 대표적인 LIFO(Last In First Out) 구조입니다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있습니다. 스택의 기본함수에는 push, pop, empty, top, swap 등이 있습니다.
2. 스택 헤더 파일
stack STL을 사용하기 위해서는#include <stack> 헤더파일을 포함해야 합니다 .
stack <데이터 타입> 이름 ; 으로 stack을 선언합니다.
#include <stack>
stack<int> stack;
3. 스택 기본 함수
▷ 스택에 데이터 추가하기
스택이름.push(데이터) 형태로 데이터를 추가합니다.
stack.push(element)
▷ 스택에 데이터 삭제하기
스택이름.pop(데이터) 형태로 스택의 top 데이터를 삭제합니다.
stack.pop()
▷ 스택의 제일 위(탑, top) 데이터 반환
스택이름.top() 형태로 제일 최상위 데이터를 반환합니다.
stack.top()
▷ 스택의 사이즈 반환
스택이름. size() 형태로 스택의 현재 사이즈를 반환합니다.
stack.size()
▷ 스택이 비어있는 지 확인
스택이름.empty() 형태로 스택이 비어있는 지 확인합니다.
stack.empty()
▷ 스택 SWAP : 두 스택의 내용 바꾸기
스택1과 스택2 두 스택의 내용을 바꾸고 싶은 경우, 내장된 swap 함수를 사용합니다.
swap(스택1 이름, 스택2 이름) 형태로 두 스택의 내용을 바꿉니다.
swap(stack1 , stack2)
▷ 스택 기본 사용법 예시
1. 스택 st 에는 1, 2, 3 데이터를 stack.push(element)함수를 사용해 삽입했습니다.
2. 스택 st2에는 10, 20,30 데이터를 stack.push(element)함수를 사용해 삽입했습니다.
3. 스택 st와 스택 st2를 바꾸어주었습니다.
4. 스택이 비어있을 때까지 st.top 데이터를 출력하며 pop 해주었습니다.
#include <iostream>
#include <stack>
using namespace std;
int main(void) {
stack<int> st;
stack<int> st2;
st.push(1);
st.push(2);
st.push(3);
st2.push(10);
st2.push(20);
st2.push(30);
swap(st, st2);
while (!st.empty()) {
cout << st.top() << endl;
st.pop();
}
return 0;
}
출력결과는 다음과 같습니다. 30 20 10이 출력이 되었네요.
st에는 1,2,3 데이터를 넣었지만, st2와 SWAP 되어 30,20,10 데이터가 저장된 것을 볼 수 있습니다.
30
20
10
이상 C++ STL 중 하나인 스택 라이브러리에 대해 정리를 마치겠습니다 :D
궁금한 점은 아래 댓글로 남겨주세요. 감사합니다.
'프로그래밍 언어 (プログラミング言語) > C && C++' 카테고리의 다른 글
C++에서 문자열을 Parsing하는 다양한 방법 (0) | 2023.01.11 |
---|---|
STL lower_bound() upper_bound() (0) | 2022.12.18 |
STL Binary Search function (0) | 2022.12.18 |
(ordered) Map vs Unordered Map (0) | 2022.12.18 |
Map vs Multimap (0) | 2022.12.18 |