sliver__

[Mastering C++ Programming] - Queue 본문

CS/C++

[Mastering C++ Programming] - Queue

sliver__ 2022. 12. 5. 22:01
728x90
  • FIFO(First In First Out) 원칙에 따라 작동한다. 
  • 기존 컨테이너를 wrapping하고 큐 작업에 필요한 고급 기능을 제공하는 동시에 큐와 관련이 없는 불필요한 기능을 숨기는 템플릿화된 어댑터 클래스이다. 
  • STL 대기열은 기본적으로 deque 컨테이너를 사용한다. 
  • queue 인스턴스화 중에 queue의 요구 사항을 충족하는 기존 컨테이너를 사용하도록 대기열에 지시할 수 있다.
  • queue에서 새 값은 뒤에 추가되고 앞에서 제거될 수 있다. 
  • deque, list, vector는 queue 어댑터의 요구 사항을 충족합니다.

 

  • API는 아래와 같다.

 

  • 예제는 아래와 같이 FIFO로 동작한다.
#include <iostream>
#include <queue>
#include <iterator>
#include <algorithm>
using namespace std;

int main () {
  queue<int> q;

  q.push ( 100 );
  q.push ( 200 );
  q.push ( 300 );

  cout << "\nValues in Queue are ..." << endl;
  while ( ! q.empty() ) {
    cout << q.front() << endl;
    q.pop();
  }

  return 0;
}

 

g++ Queue.cpp -std=c++17
(base) silvvv@silvvvui-MacBookAir Mastering_C++ % ./a.out

Values in Queue are ...
100
200
300
728x90
Comments