
  , C++ Class library wg stack M queue, B template (˪O);
stack, queue, M vector, list, M\hnΪƵcH sort Ƶ,
O C++ STL (Standard Template Library) @, 
STL_O HP u{v(@Ok@ Meng Lee)ѦҸƵcҥgF
b Internet WjaKOϥΪ, Өܥ[J C++ зǵ{w!
 stack M queue ƦWٻPΪkP@ƵcҥWyP; 
Ҧp, @popOvoid function, |KǦ^ top( ) ; 
Sp, @queue[JR enqueue ( addqueue) P dequeue.
HUε{w queue XR MyQueue, ügenqueue/dequeue 
uFXӨƦW :-)  ӸƵcҥW :-)
pGڭ̳sk@g stack/queue |, NӥyF!

ccsun2 queSample> g++ que9.cpp
ccsun2 queSample> ./a.out
Size of the queue = 8
5 3 7 7 0 8 8 0 
ccsun2 queSample> 
ccsun2 queSample> cat -n que9.cpp
     1  //que9.cpp --- CopyLeft by tsaiwn@csie.nctu.edu.tw
     2  #include <iostream>
     3  #include <queue>
     4  // see  /usr/local/include/g++/queue
     5  using namespace std;
     6  template <class T>
     7  class MyQueue: public queue<T>{
     8      public:
     9         void enqueue(T x){ queue<T>::push(x); }
    10         void dequeue(void){ queue<T>::pop(); }
    11         T head(void){ return queue<T>::front(); }
    12         bool isempty() { return queue<T>::empty(); }
    13         // size_t size() { return queue<T>::size(); }
    14  };
    15  int main( )
    16  {
    17     MyQueue <char> x;
    18     x.enqueue(53);     // 48+ 5
    19     x.enqueue(0x33);   // '3'
    20     x.enqueue('7');
    21     x.enqueue(55);    // 48 + 7
    22     x.enqueue(48);    // 48 == '0'
    23     x.push(56);    // 48 + 8
    24     x.push(56);    // '8'
    25     x.enqueue(48);
    26     cout << "Size of the queue = " << x.size() << endl;
    27     while(! x.isempty())
    28     {
    29        cout << x.head() << " ";
    30        x.dequeue();
    31     }
    32     std::cout << endl;
    33  }
ccsun2 queSample> g++ que9.cpp
ccsun2 queSample> ./a.out
Size of the queue = 8
5 3 7 7 0 8 8 0 
ccsun2 queSample> exit
exit
