queue的模拟实现

#include<iostream>
using namespace std;
#include<deque>

//库函数中queue的底层结构为deque
//模板参数: T--数据类型   Container--底层数据结构
template<class T, class Container = deque<T>>
class queue
{
public:
	queue()
		:con()
	{}
	void push(const T& x)
	{
		con.push_back(x);
	}
	void pop()
	{
		con.pop_front();
	}
	T& front()
	{
		return con.front();
	}
	const T& front()const
	{
		return con.front();
	}
	T& back()
	{
		return con.back();
	}
	const T& back()const
	{
		return con.back();
	}
	size_t size()const
	{
		return con.size();
	}
	bool empty()const
	{
		return con.empty();
	}
private:
	Container con;
};

void testQueue()
{
	queue<int> q;
	if (q.empty())
	{
		cout << q.size() << endl;
	}
	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);
	q.push(5);
	cout << q.size() << endl;
	cout << q.front() << " --- " << q.back() << endl;

	q.pop();
	q.pop();
	cout << q.size() << endl;
	cout << q.front() << " --- " << q.back() << endl;
}

int main()
{
	testQueue();
	return 0;
}
发布了67 篇原创文章 · 获赞 15 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43746320/article/details/102749043