C++ STL에서 스택은 LIFO 구조로 구현된 컨테이너로 사용됩니다. LIFO는 후입선출을 의미합니다. 스택은 책을 한 겹 더 쌓아 올린 책 더미로 볼 수 있으며 마지막에 삽입된 책이 가장 먼저 제거되기 때문에 LIFO 구조라고 합니다.

스택과 관련된 작업은 -
-
상단() - 이 함수는 스택의 최상위 요소에 대한 참조를 반환합니다.
구문 - name_of_stack.top()
매개변수 - 매개변수 없음
반환 가치 - 스택 컨테이너의 최상위 요소에 대한 참조
-
푸시() - 스택 컨테이너에 요소를 삽입할 때 사용하는 함수입니다.
구문 - name_of_stack.push(요소)
매개변수 - 이 함수는 삽입할 요소를 가져옵니다.
반환 가치 - 아무것도 반환하지 않습니다.
-
팝() - 이 함수는 스택 컨테이너에서 요소를 제거하는 데 사용됩니다.
구문 - name_of_stack.pop()
매개변수 - 매개변수 없음
반환 가치 - 스택의 최상위 요소를 제거하고 반환합니다.
-
크기() - 이 함수는 스택에 존재하는 총 요소 수를 계산하는 데 사용됩니다.
구문 - name_of_stack.size()
매개변수 - 매개변수 없음
반환 가치 - 스택의 요소 수를 반환합니다.
-
빈() - 이 함수는 스택이 비어 있는지 여부를 확인하는 데 사용됩니다.
구문 - name_of_stack.empty()
매개변수 - 매개변수 없음
반환 가치 - true 또는 false인 Boolean 값을 반환합니다. 스택이 비어 있으면 true이고 스택이 비어 있지 않으면 false입니다.
예시
#include <bits/stdc++.h>
using namespace std;
int main(){
//create a stack container
stack <int> newStack;
//insert elements to a stack
newStack.push(10);
newStack.push(20);
newStack.push(30);
newStack.push(40);
//check whether the values are pushed in stack or not
//using empty()
if(!newStack.empty()){
//calculate size of a stack
cout<<"Stack size is: "<< newStack.size();
}
else{
cout<<"Stack is empty";
}
cout<<"\nElements in the stack are:";
while(!newStack.empty()){
cout<<" "<< newStack.top();
newStack.pop();
}
return 0;
} 출력
Stack size is: 4 Elements in the stack are: 40 30 20 10