English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Stack(스택)

컴퓨터 과학 분야에서는 다양한 프로그램에 대해 노력하고 있습니다. 각 프로그램은 자신의 영역과 유용한 도구를 가지고 있습니다. 프로그램이 생성된 목적과 환경에 따라 많은 데이터 구조를 선택할 수 있습니다. 중 하나는 '스택'입니다. 이 데이터 타입에 대해 논의하기 전에, 그 문법을 보겠습니다.

문법

template<class T, class Container = deque<T> > class stack;

이 데이터 구조는 LIFO 기술을 사용합니다. LIFO는 마지막에 들어간 것이 먼저 나오는 것을 의미합니다. 먼저 추가된 요소는 마지막에서 추출됩니다. 그리고 그런 다음 그런 다음과 같습니다. 가장 위에 위치한 요소는 'top'이라는 이름을 가지고 있습니다. 모든 추가와 제거 작업은 스택의 위쪽 요소 자체에서 수행됩니다.

응용 분야의 스택은 컨테이너 어댑터로서 가정됩니다.

컨테이너는 다음과 같은 작업 목록을 지원해야 합니다:

  • empty

  • size

  • back

  • push_back

  • pop_back

템플릿 파라미터

T:파라미터는 컨테이너 어댑터가 유지할 요소 타입을 지정합니다.

Container:파라미터는 스택 요소를 포함하는 컨테이너의 내부 객체를 지정합니다.

멤버 타입

아래는 스택 멤버 타입 목록과 간단한 설명을 제공합니다.

회원 타입설명
value_type요소 타입을 지정합니다.
container_type기본 컨테이너 타입을 지정합니다.
size_type요소의 크기 범위를 지정합니다.

함수

함수를 통해 프로그래밍 분야에서 객체나 변수를 사용할 수 있습니다. 스택은 프로그램에서 사용하거나 삽입할 수 있는 많은 함수를 제공합니다. 동일한 목록은 다음과 같습니다:

함수설명
(생성자)이 함수는 스택 컨테이너를 생성합니다.
empty이 함수는 스택가 비어 있는지 여부를 테스트합니다. 스택이 비어 있으면 이 함수는 true를 반환하고, 그렇지 않으면 false를 반환합니다.
size이 함수는 스택 컨테이너의 크기를 반환합니다. 이 크기는 스택에 저장된 요소의 수를 측정합니다.
top이 함수는 스택의 최상단 요소에 접근합니다. 이 요소는 매우 중요한 역할을 합니다. 왜냐하면 모든 삽입 및 제거 연산이 최상단 요소에서 수행되기 때문입니다.
push이 함수는 스택의 최상단에 새로운 요소를 삽입합니다.
pop이 함수는 요소를 제거하여 스택의 최상단 요소를 지우는 데 사용됩니다.
emplace이 함수는 현재 최상단 요소 위의 스택에 새로운 요소를 삽입합니다.
swap이 함수는 참조의 두 컨테이너의 내용을 교환합니다.
관계 연산자비회원 함수는 스택가 필요로 하는 관계 연산자를 지정합니다.
uses allocator<stack>명칭에서 알 수 있듯이, 비회원 함수는 스택에 대한 알locator를 사용합니다.

예제: 기본 스택 함수의 사용법을 설명하는 간단한 프로그램.

#include <iostream>
#include <stack>
using namespace std;
void newstack(stack<int> ss)
{
	stack<int> sg = ss;
	while (!sg.empty())
	{
		cout << \
		sg.pop();
	}
	cout << \
}
int main()
{
	stack<int> newst;
	newst.push(55);
	newst.push(44);
	newst.push(33);
	newst.push(22);
	newst.push(11);
	cout << \
	newstack(newst);
	cout << "\n newst.size() : " << newst.size();
	cout << "\n newst.top() : " << newst.top();
	cout << "\n newst.pop() : ";
	newst.pop();
	newstack(newst); 
	return 0;
}

출력:

최신 스택은 : 	11	22	33	44	55
 newst.size() : 5
 newst.top() : 11
 newst.pop() : 	22	33	44	55