這是直接使用 C++ STL 類別程式庫中的 queue, 它是一個 template class. 該 queue 的加入 queue 也用 push, 所以我們用 #define enque push 這個 macro definition 把程式中用到 enque 的改為 push 另外, queue 的頭部應該也可以用 top( ), 但測試有問題所以#define 成為 front tsaiwn@magpie % cat -n testmyq4.cpp 1 //testmyq4.cpp -- using class queue in STL 2 // CopyLeft by tsaiwn@csie.nctu.edu.tw 3 #define enque push 4 #define top front 5 // 以下的 #ifndef 是用來 check 是否為 GNU 的 g++ ? 6 // 若不是則使用舊式的寫法! 例如 Turbo C++ 3.0 只認識舊式的寫法! 7 #ifndef __GNUG__ 8 #include 9 #include 10 #else 11 #include 12 #include 13 using namespace std; 14 #endif 15 ////// ////// ////// ////// ////// ////// 16 int main( ) { 17 queue xo; // queue is a template class in STL 18 xo.enque(53); 19 xo.push(770); 20 xo.push(880); 21 while(!xo.empty( ) ) { 22 cout << xo.top( ) << " "; xo.pop( ); 23 } 24 cout << endl; // new line 25 return 0; 26 } tsaiwn@magpie % g++ testmyq4.cpp tsaiwn@magpie % ./a.out 53 770 880 tsaiwn@magpie % echo p625