queue的模拟实现,直接调用deque的接口
#pragma once
#include <iostream>
#include <deque>using std::endl;
using std::cout;
using std::istream;
using std::ostream;namespace zyy
{//queue -> 先进先出template <class T, class Container = std::deque<T>>class queue{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_front();}size_t size() const{return _con.size();}T& top(){return _con.front();}const T& top() const{return _con.front();}bool empty() const{return _con.empty();}private:Container _con;};
};
测试:
#include "queue.h"using namespace zyy;void test1()
{queue<int> q1;q1.push(1);q1.push(2);q1.push(3);q1.push(4);q1.push(5);cout << "q1.top(): " << q1.top() << endl;cout << "before size: " << q1.size() << endl;cout << "before empty: " << q1.empty() << endl;for (int i = 0; i < 5; ++i){cout << q1.top() << " ";q1.pop();}cout << endl;cout << "after size: " << q1.size() << endl;cout << "after empty: " << q1.empty() << endl;
}int main()
{test1();return 0;
}
测试结果: