[C++] STL 큐(Queue), 스택(Stack)

Date:     Updated:

카테고리:

태그:

이 글은 C++ STL 큐(Queue)와 스택(Stack)을 공부하고 정리한 글입니다

큐와 스택

  • 큐 : 선입 선출(First-in first-out, FIFO) 자료구조
  • 스택 : 후입 선출(Last-in first-out, LIFO) 자료구조

    • 선입 선출(First-in first-out, FIFO) 자료구조

      코드 예시

      #include <queue>
        
      int main()
      {
          std::queue<std::string> studentNameQueue;
          studentNameQueue.push("Coco");
          studentNameQueue.push("Mocha");
        
          while (!studentNameQueue.empty())
          {
              std::cout << "Waiting student: " << studentNameQueue.front() << std::endl;
              studentNameQueue.pop();
          }
        
          return 0;
      }
      

      push()

      void push(const value_type& val);
      
      • queue의 맨 뒤에 새 요소를 삽입한다
      studentIDQueue.push(1234);
        
      studentNameQueue.push("Lulu");
        
      studentInfoQueue.push(StudentInfo("Coco", 1234));
      

      pop()

      void pop();
      
      • 가장 먼저 삽입되었던 요소를 제거한다
      std::queue<std::string> studentNameQueue;
      // "Coco"와 "Mocha"를 넣는다
        
      studentNameQueue.pop();       // studentNameQueue: "Mocha"
      

      front()

      value_type& front();
      
      • 가장 먼저 삽입되었던 요소를 참조로 반환한다
      std::string front = studentNameQueue.front();
      

      back()

      value_type& back();
      
      • 가장 마지막에 삽입되었던 요소를 참조로 반환한다
      std::string back = studentNameQueue.back();
      

      size()

      size_type size();
      
      • queue에 들어 있는 요소의 수를 반환한다
      int size = studentNameQueue.size();
      

      empty()

      bool empty();
      
      • queue가 비어 있으면 true를, 그렇지 않으면 false를 반환한다
      bool bEmpty = studentNameQueue.empty();
      

    스택

    • 후입 선출(Last-in first-out, LIFO) 자료구조

      코드 예시

      #include <stack>
        
      int main()
      {
          std::stack<std::string> studentNameStack;
          studentNameStack.push("Coco");
          studentNameStack.push("Mocha");
        
          while (!studentNameStack.empty())
          {
              std::cout << studentNameStack.top() << std::endl;
              studentNameStack.pop();
          }
        
          return 0;
      }
      

      push()

      void push(const value_type& val);
      
      • stack의 맨 뒤에 새 요소를 삽입한다
      studentIDStack.push(1234);
        
      studentNameStack.push("Lulu");
        
      studentInfoStack.push(StudentInfo("Coco", 1234));
      

      pop()

      void pop();
      
      • Stack에 가장 마지막에 저장된 요소를 제거한다
      std::stack<std::string> studentNameStack;
      // "Coco"와 "Mocha"를 넣는다
        
      studentNameStack.pop();       // studentNameStack: "Coco"
      

      top()

      value_type& top();
      
      • stack에 가장 마지막에 저장된 요소를 참조로 반환한다
      std::string top = studentNameStack.top();
      

      size()

      size_type size();
      
      • stack에 들어 있는 요소의 수를 반환한다
      int size = studentNameStack.size();
      

      empty()

      bool empty();
      
      • stack이 비어 있으면 true를, 그렇지 않으면 false를 반환한다
      bool bEmpty = studentNameStack.empty();
      


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기