C++ Queue

174 阅读1分钟

队列是一种能简单高效的保存时间先后次序的抽象数据类型,满足先进先出,只支持push和pop操作。不同于stack,队列的push和pop操作在队列的两侧进行。

类型名称:queue<T>queue<T,Underlying_Container>,表明是由T类型的元素构成的队列,但为了效率Underlying_Container不能是vector类型。

头文件:<queue>

已定义类型:value_type、size_type

无迭代器

成员函数:
q.size():返回队列中的元素数量
q.empty():判断队列是否为空,返回true或false
q.front():返回对队列首“元素”的可变引用
q.back():返回到队尾元素的一个可变引用
q.push(元素):将元素添加到队尾
q.pop():删除栈顶元素,类型为void,但并不返回被删除的元素
q1==q2:若成立,表明q1中的每个元素都等于q2的对应元素,返回true或是false

此外queue还有一个默认的构造函数、一个拷贝构造函数以及一个特殊的构造函数,还有一个析构函数。

队列的使用例子:

	#include <cstdlib>
	#include <iostream>
	#include <queue>
	using namespace std;
	int main()
	{
		int e,n,m;
		queue<int> q;
		for(int i=0;i<10;i++)
			q.push(i);
		if(!q.empty())
			cout<<"队列非空!\n";
		n=q.size();
		cout<<"队列有"<<n<<"个元素"<<endl;
		m=q.back();
		cout<<"队尾元素是:"<<m<<endl;
		for(int j=0;j<n;j++)
		{
			e=q.front();
			cout<<e<<" ";
			q.pop();
		}
		cout<<endl;
		if(q.empty())
			cout<<"队列空!\n";
		else
			cout<<"队列非空!\n";
		return 0;
	}
	

输出是:
这里写图片描述