(STL及算法)4.queue

一.队列:队列也是一种逻辑数据结构,其具有先进先出的特性,只能在队的前端进行删除, 在队的后端进行插入。针对这种特性,可以实现一些较为复杂的逻辑。在实际应用中,部分程序也正需要这样一种顺序进出的数据处理方式。使用这样的逻辑处理方式,使得我们可以将更多精力放在如何处理顺序逻辑之外的事情,对于编程、开发来讲,提供了极大的方便。

同stack类似,queue也可以看成是容器的容器,内部是使用其它容器来存放具体数据。加了一个外壳,使得我们的数据操作只能是在头或尾。从尾部添加数据,从头部取数据,从而实现FIFO的特性。同stack一样,内部默认数据存放容器为deque,若要用非默认容器初始化,必须要在模板中指定容器类型。

二.queue定义:
需要定义两个参数 :
1.元素类型(必须的)
2.容器类型(不定义的话默认为deque类型容器)

三.栈适配器 STL queue
queue<int,deque> q;
queue<int,list> q;
q.empty()
q.size()
q.front()
q.back()
q.pop()
q.push(item)

四.代码实例

#include <iostream>
#include <queue>
#include <list>
#include <deque>

using namespace std;

int main()
{
    queue<int,deque<int>> a;
	queue<int, list<int>> b;
	//queue<int, vector<int>> c;//vector容器只能单向操作
	queue<int> q;

	q.push(10);
	q.push(5);
	q.push(-1);
	q.push(20);

	cout << "现在队列里有 " << q.size() << " 个数据" << endl;
	cout << "队首的数据: " << q.front() << endl;
	cout << "队尾的数据: " << q.back() << endl;

	q.pop();
	cout << "pop以后,新队首的数据: " << q.front() << endl;

	while (q.size() != 0)
	{
		cout << "删除: " << q.front() << endl;
		q.pop();
	}
	if (q.empty())
	{
		cout << "现在队列是空的!" << endl;
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值