CS/자료구조

[자료구조] stack 컨테이너_C++

lingk 2020. 12. 17. 17:27

스택 (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하면 나타나는 결과

 


🌀 스택 문제

 

lin-ing-link.tistory.com/142

 

[프로그래머스] Level2 : 주식가격

문제 programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return..

lin-ing-link.tistory.com

 

lin-ing-link.tistory.com/132

 

[백준] 9012번 : 괄호

문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)

lin-ing-link.tistory.com

 

반응형