[STL] Stack 생성, 삽입, 삭제 등 사용법

Notepad96

·

2020. 11. 8. 22:48

300x250

 

 
 

1. stack

 

stack(스택)은 후입선출(LIFO)의 구조로서 가장 마지막의 들어온 것이 가장 먼저 나가는 자료 구조이다.

 

 

마치 바구니의 상자들을 넣어서 쌓는 모습을 상상하면 된다.

stack

이러한 바구니에서 아래에 있는 상자들을 꺼내기 위해서는 가장 마지막으로 넣었던 상자부터 차례대로 꺼내어야 한다.

 

바로 이러한 형태의 구조로 데이터를 저장하는 자료구조를 Stack이라고 한다.

 

 

STL에서는 이러한 stack이 구현되어 있고 몇가지 멤버함수만 알고 있다면 간단하게 사용할 수 있다.

 

 

 


2. 코 드

환경 : Visual Studio 2019
 
#include <iostream>
#include <stack>
using namespace std;

int main() {
	stack<int> stack;

	if (stack.empty()) {
		cout << "스택이 비었습니다.\n";
	}

	/* 삽입, 삭제 */
	stack.push(5);	// 5
	stack.push(4);	// 5 4
	stack.push(2);	// 5 4 2
	stack.push(1);	// 5 4 2 1
	stack.push(3);	// 5 4 2 1 3
	stack.pop();	// 5 4 2 1

	cout << "사이즈 : " << stack.size() << "\n";

	while (!stack.empty()) {
		cout << stack.top() << " ";
		stack.pop();
	}
	cout << "\n";

	return 0;
}
 
 
결과
 
 
 

- push : 삽입 

- pop : 삭제

 

- empty : 스택이 비었는지 검사. 비어있다면 true 반환

 

- top : 현재 스택에서 가장 꼭대기 데이터 참조

 

- size : 스택의 사이즈 반환

 
 
 
 

- while문을 통하여 출력된 것을 보면 삽입한 것과는 역순으로 출력되는 것을 확인할 수 있다.

 
 
 
 
 
 


3. 참 조

 

 

stack - C++ Reference

container_typeThe second template parameter (Container)Type of the underlying container

www.cplusplus.com

 
 
300x250