头文件都是#include<queue>
队列
先进先出的结构,定义方式举例:queue<int>q;
此处是定义了一个int类型的队列
常用函数:
q.push(a)——元素a入队
q.front()——取队首元素
q.pop()——队首元素出队
q.back()——取队尾元素
q.empty()——若队为空函数返回1,非空返回0
q.size()——返回队列中的元素个数
对于结构体
可以定义形如queue<node>q
的队列
此时应先定义结构体变量struct node x
,然后对x.a,x.b进行赋值后,再进行如下入队操作q.push(x)
取队首同理,可先用一个结构体变量来接收队首x=q.front()
然后再对于x.a和x.b进行运用
优先队列
与普通队列不同的地方在于,元素在入队后会根据元素特点分出优先级,该优先级可自己定义
举例:priority_queue<int,vector<int>,cmp>q;
此处定义了一个int类型的优先队列,cmp的书写方式如下:
此处含义为为数大的优先级高。
常用函数: