其实实现队列蛮简单的,但敌不过人懒~

于是stl库中就有了专门实现队列的函数#include<queue>

这里讲解下queue常用的几个操作

1.q.push(),向队列中插入元素

2.q.size(),计算并返回队列大小(也就是队列中元素个数)

3.q.front(),返回队头元素

4.q.pop(),弹出队头元素

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>           //多了一个库哎~
using namespace std;
int main()
{queue<int>q;          //先定义一个队列 for(int i=1;i<=10;i++){int x;            //每次输入一个数并插入队列中 cin>>x;q.push(x);        //插入操作 } int size = q.size();  //q.size()是来计算现在队列中是有多少元素的 cout<<size<<endl;while(q.size()){int t = q.front();//q.front()来返回队头元素 cout<<t<<endl;    //看看每次输出的元素和输入的顺序一不一样 q.pop();          //从队头弹出元素,也就是队头出队 } return 0;
}

挺有意思的吧,现在我们来试试优先队列,也就是自动让入队的元素根据权值排队,权值大的排在前面,听起来好高级hhh

普通的队列是queue,优先队列就是priority_queue(没错还是下划线)

1.q.push(),向队列中插入元素

2.q.size(),计算并返回队列大小(也就是队列中元素个数)

3.q.top(),返回队头元素

4.q.pop(),弹出队头元素

(等等怎么从q.front()变成q.top()了呢?是因为优先队列使用堆来实现的,因此现在不是队头而是堆顶啦)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;        //试着乱序输入看看会得到什么结果
int main()
{priority_queue<int>q;   //这变化了一下 for(int i=1;i<=10;i++){int x;            cin>>x;q.push(x);      } int size = q.size();  cout<<size<<endl;while(q.size()){int t = q.top();    //还有这儿 cout<<t<<endl;    q.pop();         } return 0;
}

来我们看最后一个成员——优先队列小根堆,其实就是把排列顺序变了一下,小根堆是由小到大排序的~

1.q.push(),向队列中插入元素

2.q.size(),计算并返回队列大小(也就是队列中元素个数)

3.q.top(),返回队头元素

4.q.pop(),弹出队头元素

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>          //这还要再多加一个头文件
using namespace std;
int main()
{                         //int是数据类型,vector和greater是固定的 priority_queue<int,vector<int>,greater<int> >q;  //特别注意下这两个尖括号要分开,不然就成了cin>>这种,是会报错的 for(int i=1;i<=10;i++){int x;            cin>>x;q.push(x);      } int size = q.size();  cout<<size<<endl;while(q.size()){int t = q.top();    //这也是top cout<<t<<endl;      //看看输出有什么不一样? q.pop();         } return 0;
} 

队列还是蛮常用的,小根堆在dijkstra中要用,顶多就是定义难记一点,多敲几遍就熟了呗

要加油蛙!!!

stl库的使用——队列queue和优先队列和优先队列小根堆(全家桶哎)相关推荐

  1. STL库:stack和queue

    STL库:stack和queue 文章目录 STL库:stack和queue 1.STL库中stack的官方介绍 2.stack的常用接口 3.stack的模拟实现 4.STL库中queue的官方介绍 ...

  2. STL(七)——队列queue优先队列priority_queue

    一.queue 1.特点:先进先出(FIFO-first in first out) 只允许在表的前端(front,称为队头)进行删除操作,在表的后端(rear,称为队尾)进行插入操作 2.基本操作 ...

  3. 算法竞赛常用STL库

    栈(Stack) 概念:就像一个盒子一样,进去想出来就得等上面的先出去,也就是"先进后出". 往往栈的功能有上面四种,下面我们手写一个栈来实现这四种功能来更好的理解一下. 模拟栈的 ...

  4. c++ STL:队列queue、优先队列priority queue 的使用

    说明:本文全文转载而来,原文链接:http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.html C++ Queues(队列) C ...

  5. Queue+Stack(C++,标准库中的队列和栈)

    STL Queue(先进先出) 头文件#include 成员函数 queue::pop () //出队列 queue::push () //入队列 queue::size () //返回队列中元素个数 ...

  6. oracle 删除 queue,C++ stl队列Queue用法介绍:删除,插入等操作代码举例

    c++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型. C++队列Queue是一种容 ...

  7. STL库中的优先队列

    priority_queue是一个优先队列,优先级高的最先出队,默认最大值优先.内部实现为堆,因此出队和入队的时间复杂度均为O(logn).可以自定义优先级控制出队顺序优先队列不支持删除堆中指定元素, ...

  8. C++STL库:String介绍

    C++STL库 学习方法:使用STL的三个境界:能用,明理,能扩展. 今天我们开启一个新主题:C++数据结构之STL库,我们将介绍STL库里常用库的用法与实现过程. 常用库 库名称 所需头文件 数据结 ...

  9. C++常用STL库详细总结

    C++STL库函数总结 #include< algorithm >库函数 1.sort排序 2.reverse倒转 3.unique去重 4.二分查找 5.find函数查找 6.字符串和整 ...

最新文章

  1. 8道Python基础面试练习题
  2. 上海市高校大学生计算机一级,上海市高校计算机等级考试(一级)..doc
  3. Codeforces Round #482 (Div. 2)
  4. Android/Java中使用Protobuf的Any类型实现泛型解析
  5. how to render AET extension field as code list
  6. JS面向对象编程实现
  7. 数据结构:排序算法之插入排序
  8. 沉梦云商城系统2.1.7免授权源码+搭建教程
  9. 服务器Raid数据恢复成功案例和raid 5数据恢复算法原理
  10. JDK自带内存及线程分析工具
  11. jsp还能引用项目外的js,css啊
  12. 大数据安全分析有哪些常见问题
  13. 过采样 Oversampling
  14. ppt流程图箭头分叉_箭头循环图ppt模板_PPT结构图制作中箭头跟着目标走的技巧_ppt箭头流程图模板_ppt箭头循环图...
  15. Juniper JUNOS Commands (Tips and Tricks)
  16. 字节辟谣被裁员工与 HR 互殴;苹果头显多个新功能曝光;谷歌希望 RISC-V 成为 T1 级 Android 架构|极客头条...
  17. 去除 WPS 的广告
  18. 如何进行文献检索和阅读
  19. spm12预处理步骤及知识点总结
  20. 2022华为杯A题第二问详细思路分析移动场景超分辨定位问题

热门文章

  1. CoreML遇到的问题和原因
  2. 与计算机应用相关的公告,2015全国大学生数学建模与计算机应用竞赛报名通知...
  3. win10模拟器(win10模拟器无限蓝卡)
  4. vue实现购物车动画
  5. 一次成功的云存储接管实战
  6. Line APP端协议登录、群发、拉群功能
  7. 央视气象女主播王蓝一揭秘天气预报潜规则
  8. AndroidStudio SVN 文件忽略
  9. 接入微信universal link微信校验不通过
  10. 拼团系统开发的亮点与核心功能