今天自己手写了个队列
#define MAXSIZE 10000 template<typename DATATYPE> class queue { private: DATATYPE * QUEUE; DATATYPE *pfront,*prear; public: queue(); ~queue(); bool pop(); bool push(DATATYPE); DATATYPE front(); bool empty(); void show(bool); }; template<typename DATATYPE> queue<DATATYPE>::queue() { QUEUE=new DATATYPE[MAXSIZE]; pfront=prear=&QUEUE[0]; } template<typename DATATYPE>queue<DATATYPE>::~queue() { delete QUEUE; } template<typename DATATYPE>bool queue<DATATYPE>::pop() { if(pfront==rear)return false; pfront=(pfront+1)%MAXSIZE; return true; } template<typename DATATYPE>bool queue<DATATYPE>::push(DATATYPE T) { prear=(prear+1)%MAXSIZE; if((prear+1)%MAXSIZE==front)return false; QUEUE[prear]=T; return true; } template<typename DATATYPE>DATATYPE queue<DATATYPE>::front() { return QUEUE[pfront]; } template<typename DATATYPE>bool queue<DATATYPE>::empty() { if(pfront==prear)return true; return false; } template<typename DATATYPE> void queue<DATATYPE>::show() { DATATYPE *p=pfront; while(p!=prear) { std::cout<<*p<<" "; p=(p+1)%MAXSIZE; } }