队列(queue)和优先队列(priority_queue)

Posted sunjianzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列(queue)和优先队列(priority_queue)相关的知识,希望对你有一定的参考价值。

队列:先进先出

头文件:<queue>

基本操作

queue<Type>q;   //定义队列,Type可以系统定义的数据类型,也可以是自己定义的结构体类型

q.push(item);       //把item放入队列的尾部

q.front();   //返回队首元素,但不会删除

q.pop();    //删除队首元素

q.back();  //返回队尾元素

q.size();    //返回元素个数

q.empty();   //检查队列是否为空

 

优先队列 :按照权值进行队列排序

头文件:<queue>

基本操作:

priority_queue<Type,vector<Type>,greater<Type> >q; //队首元素最小。 若是自定义结构体,需要重载运算符>
priority_queue<Type,vector<Type>,less<Type> >q; //队首元素最大.。   若是自定义结构体,需要重载运算符<

bool operator >(struct node p,struct node q) {//无论是重载>还是重载<,下面的比较>都是从小到大排序,<都是从大到小排序
return p.x>q.x; // >号代表从小到大排序 (按照x排序)
}

q.top();   // 返回队头元素

q.empty();    //判断队列是否为空

q.size();   //返回队列内元素个数

q.push();    //插入元素到队尾 (并排序)

q.pop();   //删除队头元素

 

 

写于2020/7/31  11:58

以上是关于队列(queue)和优先队列(priority_queue)的主要内容,如果未能解决你的问题,请参考以下文章

堆(Heap)和有优先队列(Priority Queue)

队列(queue)和优先队列(priority_queue)

以相反的顺序遍历现有的标准优先级队列

优先队列priority_queue

c++优先队列(priority_queue)用法详解

priority_queue 优先级队列