queue的介绍使用及模拟实现

queue的介绍使用及模拟实现

1、queue的介绍

1、队列是一种容器适配器,其特点是先进先出
2、队列提供的操作有判空、返回队首队尾元素、入队、出队等操作
3、队列的底层默认使用deque实现

2、queue的基本操作

函数声明 接口说明
queue() 构造空的队列
empty() 检测队列是否为空,是返回true,否则返回false
size() 返回队列中有效元素的个数
front() 返回队头元素的引用
back() 返回队尾元素的引用
push() 在队尾将元素val入队列
pop() 将队头元素出队列
#include <iostream>
#include <queue>

using namespace std;

void TestQueue1()
{
	queue<int> q1;//构造q1
	queue<int> q2;//拷贝构造q2
}

void TestQueue2()
{
	queue<int> q;

	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);

	cout << q.empty() << endl;
	cout << q.size() << endl;
	cout << q.front() << endl;
	cout << q.back() << endl;

	q.pop();

	cout << q.empty() << endl;
	cout << q.size() << endl;
	cout << q.front() << endl;
	cout << q.back() << endl;
}

int main()
{
	TestQueue1();
	TestQueue2();

	system("pause");
	return 0;
}

3、queue的模拟实现

queue.h

#include <iostream>
#include <deque>

using namespace std;

namespace gwp
{
	template<class T, class Con = deque<T>>
	class queue
	{
	public:
		queue()
		{

		}

		void push(const T& x)
		{
			m_c.push_back(x);
		}

		void pop()
		{
			m_c.pop_back();
		}

		T& front()
		{
			return m_c.front();
		}

		const T& front() const
		{
			return m_c.front();
		}

		T& back()
		{
			return m_c.back();
		}

		const T& back() const
		{
			return m_c.back();
		}

		size_t size()
		{
			return m_c.size();
		}

		bool empty()
		{
			return m_c.empty();
		}
	private:
		Con m_c;
	};
}

queue.cpp

#include <iostream>
#include "queue.h"

using namespace std;

int main()
{
	gwp::queue<int> q;

	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);
	q.push(5);

	cout << q.size() << endl;
	cout << q.empty() << endl;
	cout << q.front() << endl;
	cout << q.back() << endl;

	q.pop();
	cout << q.back() << endl;

	system("pause");
	return 0;
}

发布了117 篇原创文章 · 获赞 48 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gp1330782530/article/details/105488428