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