728x90
C++의 STL에서 사용하는 Stack(스택)의 기본 사용법에 대해 알아보려고합니다.
목차
- Stack(스택) 이란?
- Stack(스택)의 기본 사용법
1. Stack(스택) 이란?
Stack(스택)이란 한쪽 끝에서 원소를 넣거나 뺄 수 있는 자료구조입니다.
Queue(큐)와는 다르게 먼저 들어온 원소가 나중에 나가는 First In Last Out(FILO) 구조입니다.
(과자 중 프링글스 통이라고 생각하시면 될 것 같습니다.)
Stack(스택)의 기본 함수에는 push, pop, top, empty, size가 있습니다.
그리고 스택의 경우 제일 상단이 아닌 나머지 원소들의 확인/변경이 불가능합니다.
2. Stack(스택)의 기본 사용법
2-1. Stack(스택) 헤더파일
#include <stack>
std::stack<int> st;
스택을 사용하기 위해선 #include <stack> 헤더파일을 포함해야합니다.
기본 형식은 std::stack<자료형> 변수명; 입니다.
2-2 Stack(스택) 기본 함수
멤버 함수 | 결과 |
st.push(값) | 스택의 맨앞에 원소를 추가 |
st.pop() | 스택의 맨앞의 원소를 제거 |
st.empty() | 스택이 비었있다면 1, 비어있지 않다면 0을 반환 |
st.top() | 스택의 상단 원소를 반환 |
st.size() | 스택의 사이즈를 반환 |
#include <stack>
#include <iostream>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
stack<int> st;
st.push(5);
st.push(4);
st.push(3);
if(!st.empty()) {
cout << st.empty() << '\n'; // 0 출력, 비어있지 않음
cout << st.top() << '\n'; // 상단 3 출력
}
st.pop(); // 상단 3 제거
if(!st.empty()) {
cout << st.size() << '\n'; // 2 출력
}
else {
cout << st.size() << '\n';
}
st.pop(); // 상단 4 제거
st.pop(); // 상단 5 제거
if(!st.empty()) {
cout << st.size() << '\n';
}
else {
cout << st.size() << '\n'; // 0 출력
}
return 0;
}
※ Tip
멤버 함수를 사용시에 주의할 점이 있다.
스택이 빈 상태에서 사용하면 런타임 에러가 발생하는 멤버 함수가 있다.
멤버 함수 중 top, size, pop 이다.
그러므로 사용하기 전에 스택이 비었는지 여부를 먼저 확인 후 사용해야한다.
728x90
'Language > C++' 카테고리의 다른 글
[C++ stable_sort] stable_sort (0) | 2022.12.15 |
---|---|
[C++ 큐] Queue 기본 사용법 (0) | 2022.07.15 |
[C++ 순열과 조합] next_permutation (1) | 2022.07.12 |
[C++ 문자열 치환] regex_replace (0) | 2022.07.11 |
댓글