C++利用模板實現一個佇列
阿新 • • 發佈:2019-01-05
開頭總結:.利用模板類實現了一個佇列,利用模板的好處是提供泛型程式設計,在儲存資料的時候會適應不同型別的資料,減少了程式碼的書寫,簡化了程式的結構。
#include <iostream> using namespace std; //模板類 template <typename T,int num> class Queue { private: T arr[num]; int front; int rear; public: Queue() //建構函式 { front=0; rear=0; } bool isEmpty();//判斷佇列是否為空 bool isFull();//判斷佇列是否為滿 bool push(const T &);//進佇列 bool pop(T &);//出佇列 這裡的引數一定是引用 因為要改變其本身 }; template <typename T,int num> bool Queue<T,num>::isEmpty() { return front==rear; } template<typename T,int num> bool Queue<T,num>::isFull() { return front==num; } template<typename T,int num> //進佇列 判斷佇列是否滿 bool Queue<T,num>::push(const T &a) { if(isFull()) { cout<<"佇列已滿"<<endl; return false; } else { arr[front]=a; ++front; } return true; } template<typename T,int num> bool Queue<T,num>::pop(T &b) { if(isEmpty()) { cout<<"佇列空了"<<endl; return false; } else { b=arr[rear]; ++rear; } return true; } int main() { Queue<int,7> q; //開7個空間 cout<<"剛開始佇列空嗎? "<<q.isEmpty()<<endl; q.push(6); q.push(10); cout<<"現在還是佇列空嗎? "<<q.isFull()<<endl; int b1,b2; q.pop(b1); q.pop(b2); cout<<"佇列中第一個刪除的元素為: "<<b1<<endl; cout<<"佇列中第二個刪除的元素為: "<<b2<<endl; }