栈Stack和队列Queue

栈和队列是非常有用的数据结构,而且比较容易掌握和使用,他们的区别是什么呢,有一句话说的好:吃多了拉是队列,吃多了吐是栈;

首先先来看一下队列QUEUE

queue 队列也是一个线性存储表,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出FIFO(First In First Out)表。插入一端称为队尾,删除一端称为队首。 默认使用双端队列deque来实现,queue也可看成一个容器适配器,将 deque 容器转换为 queue 容器。当然,也可以利用其他合适的序列容器作为底层实现queue容器。

C++ STL对queue队列的泛化,是通过模板类型,将默认的deque双端队列类型导入,在内部创建一个序列容器对象,来处理 queue队列的数据存储和操作,包括queue队列是否为空、取队首元素、取队尾元素、元素入队和元素出队等。由于仅需要取队首和队尾元素的操作,因此queue队列容器并不提供任何类型的迭代器。

使用:

声明头文件“#include <queue>

push():入队,即插入元素,在队尾插入;

pop():出队,即删除元素,在队首删除;

front():取队首元素;

back():取队尾元素;

empty():判断队列是否为空;

size():队列元素的个数;

备注:如果要取队首元素,然后将之从队列中删除,应该使用:

queue.front();//这里不是取队尾
queue.pop();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值