栈stack 和 队列queue

本文介绍了栈和队列的基本概念和操作,如push、pop、top等,并通过实例说明了它们的区别。栈是后进先出(LIFO),而队列是先进先出(FIFO)。此外,还探讨了优先队列的概念,它不按进入顺序出队,而是依据设定的优先级。最后,给出了一个基于FIFO和FILO的问题解决示例。
摘要由CSDN通过智能技术生成

STL中,sort的默认排序为less,也就是说从小到大排序;priority_queue默认是less,也就说大顶堆;map默认是less,也就说用迭代器迭代的时候默认是小的排在前面;set默认是less,也就是说用迭代器迭代的时候是从小到大排序的。

 栈和队列的区别是啥? 吃多了拉就是队列,吃多了吐就是栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限
制是仅允许在表的一端进行插入和删除运算。这一端被称为
栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又
称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上
面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈
或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的
栈顶元素。

sta.push();
que.push();
que.pop();
sta.pop();
sta.top();
que.front();
que.empty(); 若队列里空了返回1
sta.empty();  若栈里空了返回1

栈和队列的清空

while(!que.empty()) que.pop(); 
while(!sta.empty()) sta.pop();

我们知道了队列是先进先出,那么优先队列则不一样了,进
的顺序不能决定出的顺序,优先队列出的顺序是按照自己设
置的优先等级来出队列的,如果自己不设置优先级的话,默
认优先级为越大优先级越高。

sort默认为从小到大排序,优先队列默认为从大到小。

优先队列代码

priority_queue <int> que;
que.push();
que.pop();
que.top(); 注意是top
que.empty();

优先级的设置

int 型

priority_queue <int,vector <int>,greater <int> >que;   最后> >之间要有空格 ,greater是小的做top
priority_queue <int,vector <int>,less<int> >que;  less是大的做top

 

//栈sta.top()
//队列que.front()
//优先队列q.top() 
#include<stdio.h>
#include<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值