스택 (Stack)
: 가장 마지막으로 삽입된 원소가 가장 먼저 제거되는 LIFO(Last In, First Out) 형태의 자료구조로, 한쪽에서만 자료를 삽입하고 삭제할 수 있는 선형 구조
stack 컨테이너
#include <stack>
template <class T, class Container = deque<T>> class stack;
🌀 설명
C++ STL에 포함되어 있는 스택을 표현하는 컨테이너.
🌀 인자
T : 데이터의 자료형
Container : 데이터를 담는 컨테이너의 유형
🌀 선언 및 초기화 예시
//정수를 담을 수 있는 스택 선언
std::stack<int> myStack;
//myStack1과 동일한 스택을 생성
std::stack<int> myStack2(myStack1)
🌀 멤버함수
//스택이 비어있는지 여부를 반환
bool empty() const;
//스택의 크기를 반환
size_type size() const;
//스택의 가장 상단에 있는 원소를 반환
const_reference &top() const;
//스택의 가장 상단에 val을 삽입
void push(const value_type &val);
//스택의 가장 상단의 원소를 제거
void pop();
//스택의 가장 상단에 새 원소를 추가
//객체 생성을 위한 인자를 받아 컨테이너 내부에서 객체를 생성
template <clas.. Args> void emplace(Args && ... args);
//스택의 모든 원소를 스택 x와 교환
void swap(stack& x) noexcept;
🌀 스택 에러
- stack overflow : 스택이 꽉 차있을때 push하면 나타나는 결과
- stack underflow : 스택이 비어 있을때 pop하면 나타나는 결과
🌀 스택 문제
반응형
'CS > 자료구조' 카테고리의 다른 글
[자료구조]이진 힙 (Binary Heap) (0) | 2021.01.12 |
---|---|
[자료구조] 트리 (Tree) (0) | 2021.01.03 |
[자료구조] queue 컨테이너_C++ (0) | 2020.12.17 |
[자료구조] list 컨테이너_C++ (0) | 2020.12.16 |
[자료구조] 연결 리스트 (Linked List) (2) | 2020.12.14 |