10.2.7优先级队列priority_queue

v  最大值优先级队列、最小值优先级队列

v  优先级队列适配器 STL priority_queue

v  用来开发一些特殊的应用,请对stl的类库,多做扩展性学习

priority_queue<int, deque<int>>   pq;

priority_queue<int, vector<int>>   pq;

pq.empty()

pq.size()

pq.top()

pq.pop()

pq.push(item)

#include <iostream>

using namespace std;

#include "queue"

void main81()

{

priority_queue<int> p1; //默认是 最大值优先级队列

//priority_queue<int, vector<int>, less<int> > p1; //相当于这样写

priority_queue<int, vector<int>, greater<int>> p2; //最小值优先级队列

p1.push(33);

p1.push(11);

p1.push(55);

p1.push(22);

cout <<"队列大小" << p1.size() << endl;

cout <<"队头" << p1.top() << endl;

while (p1.size() > 0)

{

cout << p1.top() << " ";

p1.pop();

}

cout << endl;

cout << "测试 最小值优先级队列" << endl;

p2.push(33);

p2.push(11);

p2.push(55);

p2.push(22);

while (p2.size() > 0)

{

cout << p2.top() << " ";

p2.pop();

}

}

#include<iostream>
using namespace std;
#include "queue" void main81()
{
priority_queue<int>p1;//默认情况下,最大值优先级队列
priority_queue<int,vector<int>,less<int>> p2; //提前定义好的预定义函数 谓词
priority_queue<int,vector<int>,greater<int>>p3;//最小值优先队列 p1.push();
p1.push();
p1.push();
p1.push(); cout<<"队列元素"<<p1.top()<<endl;
cout<<"队列的大小"<<p1.size()<<endl; while (p1.size()>)
{
cout<<p1.top()<<" ";
p1.pop();
} cout<<endl<<"最小值优先级队列"<<endl;
p3.push();
p3.push();
p3.push();
p3.push(); cout<<"队列元素"<<p3.top()<<endl;
cout<<"队列的大小"<<p3.size()<<endl; while (p3.size()>)
{
cout<<p3.top()<<" ";
p3.pop();
} }
void main()
{
main81();
cout<<"hello..."<<endl;
return;
}

资料来源:传智播客

C++ STL 学习笔记__(6)优先级队列priority_queue基本操作的更多相关文章

  1. STL学习系列七:优先级队列priority_queue容器

    1.简介 最大值优先级队列.最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用,请对stl的类库,多做扩展性学习 这里给个例子: #include< ...

  2. C++ STL 学习笔记__(7)Set和multiset容器

    10.2.8 Set和multiset容器 set/multiset的简介 ²  set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指 ...

  3. C++ STL 学习笔记__(8)map和multimap容器

    10.2.9 Map和multimap容器 map/multimap的简介 ²  map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. ² ...

  4. C++ STL 学习笔记__(5)list

    10.2.6List容器 List简介 ²  list是一个双向链表容器,可高效地进行插入删除元素. ²  list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符.It++(ok) i ...

  5. muduo网络库学习笔记(三)TimerQueue定时器队列

    目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...

  6. Effective STL 学习笔记 39 ~ 41

    Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  7. Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value

    Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value */--> div.org-src-container ...

  8. Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据

    Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据 */--> div.org-src-container { font-size: 85%; font-fam ...

  9. Effective STL 学习笔记 32 ~ 33

    Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

随机推荐

  1. Java各种数据库连接大全

    1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ...

  2. Linux 系统DNS解析原理

    DNS:域名的解析,也称A记录,CDN服务器   配置文件位置:       vi /etc/resolv.conf 解析原理 DNS就像一个倒挂的树,定点是点. www.baidu.com ==&g ...

  3. 多台服务器共享session问题

    在现在的大型网站中,如何实现多台服务器中的session数据共享呢 当使用多台服务器架设成集群之后,我们通过负载均衡的方式,同一个用户(或者ip)访问时被分配到不同的服务器上,假设在A服务器登录,如果 ...

  4. JavaWeb定时器-Spring3.x及更高版本Task使用

    大背景 现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展.作业调度是现代系统中对 Java 应用程序的一般要求,而且也是对 Java 开发人员一贯的要求 ...

  5. 内置数据结构(str)

    一.字符串(str) 1.字符串在python2版本中为一个byte序列,在python3版本中为一个unicode序列,并且字符串是不可变的. sr = str() sr = 'string' sr ...

  6. session过期,拦截ajax请求并跳转登录页面

    1.方法一 :1.1使用filter 和ajaxsetup 对ajax进行拦截并跳转登录页面 public void doFilter(ServletRequest request, ServletR ...

  7. React Native 基础报错及解决方案记录

    刚开始上手RN,碰到很多坑,记录一下.碰到问题多去看看github上面的issue! 启动命令react-native run-ios报错 1.:xcrun: error: unable to fin ...

  8. JavaScript组合继承的一点思考

    今天看<JavaScript高级程序设计>一书中关于组合继承模式时.书上有这么一个Demo程序: <html> <head> </head> <b ...

  9. 【vue】跟着老马学习vue-数据双向绑定

    学习了node.js教程,只能说是有了一定的了解,之前也了解了webpack和es6的核心内容,也看过vue2.0的官网教程,并结合视频看过项目,但是理解和运用仍然存在很多问题,接下来的一段时间,跟着 ...

  10. virtualbox+vagrant学习-4-Vagrantfile-1-简介

    Vagrantfile Vagrantfile的主要功能是描述项目所需的机器类型,以及如何配置和提供这些机器.之所以称为Vagrantfiles,是因为文件的实际文本文件名是Vagrantfile(除 ...