Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL(3.5)의 스택


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

C++ STL(3.5)의 스택

스택과 관련된 작업은 -

  • 상단() - 이 함수는 스택의 최상위 요소에 대한 참조를 반환합니다.

    구문 - 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