STL优先队列的使用
STL中有一个优先队列的容器可以使用。
【头文件】
queue 队列容器
vector 向量容器
【操作】
优先级队列支持的操作 |
q.empty() 如果队列为空,则返回true,否则返回false q.size() 返回队列中元素的个数 q.pop() 删除队首元素,但不返回其值 q.top() 返回具有最高优先级的元素值,但不删除该元素 q.push(item) 在基于优先级的适当位置插入新元素 |
对于Pascal留下来的手打堆习惯来说,其实对我用处不大,不过好像STL里面的复杂度更低,代码长度也能少点,以后尽量用STL好了。
#include<iostream>
#include<cstdio>
#include<queue> using namespace std; struct cmp
{
bool operator()(int x,int y)
{
return x>y;
}
}; typedef struct nod
{
int x,y;
friend bool operator < (nod a,nod b)
{
return a.y>b.y;
}
} node; int main()
{
priority_queue<int>simple;
priority_queue<int,vector<int>,cmp>define;
priority_queue<node>heap; int a[]={,,,,,,,,,}; printf("Simple Test:\n");
for (int i=;i<;i++) simple.push(a[i]);
for (int i=;i<=;i++)
{
int temp=simple.top();
simple.pop();
printf("%d\n",temp);
} printf("Define Test:\n");
for (int i=;i<;i++) define.push(a[i]);
for (int i=;i<=;i++)
{
int temp=define.top();
define.pop();
printf("%d\n",temp);
} printf("Heap Test:\n");
node b[]={{,},{,},{,},{,},{,},{,},{,},{,},{,},{,}};
for (int i=;i<;i++) heap.push(b[i]);
for (int i=;i<=;i++)
{
node temp=heap.top();
heap.pop();
printf("%d %d\n",temp.x,temp.y);
} printf("%d",<); return ;
}
STL优先队列的使用的更多相关文章
- CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)
CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆) Description 有n个函数,分别为F1,F2,...,Fn.定义 \(Fi(x)=Aix^2+Bix ...
- CJOJ 2482 【POI2000】促销活动(STL优先队列,大根堆,小根堆)
CJOJ 2482 [POI2000]促销活动(STL优先队列,大根堆,小根堆) Description 促销活动遵守以下规则: 一个消费者 -- 想参加促销活动的消费者,在账单下记下他自己所付的费用 ...
- 基于STL优先队列和邻接表的dijkstra算法
首先说下STL优先队列的局限性,那就是只提供入队.出队.取得队首元素的值的功能,而dijkstra算法的堆优化需要能够随机访问队列中某个节点(来更新源点节点的最短距离). 看似可以用vector配合m ...
- poj 3253 Fence Repair (STL优先队列)
版权声明:本文为博主原创文章,未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/34805369 转载请注明出 ...
- UVA - 136 Ugly Numbers(丑数,STL优先队列+set)
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8, 9 ...
- 合并果子(STL优先队列)
STL优先队列:priority_queue 定义:priority_queue<int>q; 从小到大:priority_queue<int,vector<int>,g ...
- STL 优先队列
STL 栈,队列,优先队列用法 分类: Learning C++2013-11-15 00:52 843人阅读 评论(2) 收藏 举报 c++栈队列优先队列STL STL 中栈的使用方法(stack) ...
- POJ 3253 Fence Repair STL 优先队列
这题做完后觉得很水,主要的想法就是逆过程思考,原题是截断,可以想成是拼装,一共有n根木棍,最后要拼成一根完整的,每两根小的拼成一根大的,拼成后的木棍长度就是费用,要求费用最少.显然的是一共会拼接n-1 ...
- STL优先队列——踩坑日记
priority_queue 可以定义STL中的优先队列,但是优先队列在应用于自己定义的类型时需要重载<运算符,或者通过仿函数来定义比较方法,在定义比较方法的过程中,比较大的坑是STL中对于参数 ...
随机推荐
- PHP之Zip扩展,解压缩文件,ZipArchive类
<?php $zip = new ZipArchive();//新建一个对象 /* $zip->open这个方法第一个参数表示处理的zip文件名. 第二个参数表示处理模式,ZipArchi ...
- JS-加载页面的时候自动选择刚才所选择option
<body class="no-skin" onload="option_auto(${pd.PACK_SORT})"> <select na ...
- webwork <ww:if> 标签的使用
如果在前台(JSP)取出后台的对象的属性,这个属性在后台是属于String 类型的,但若这个属性的值为数字,取出在前台就会默认为整形的值,所以在<ww:if> 判断里面不能加引号:< ...
- 【jsp网站计数功能】 application session
在jsp页面中实现网站计数器的方法有很多,其中比较普遍的做法是利用application 和session对象.application对象可被所有用户共享:session是单用户共享,用户从访问系统开 ...
- 【单源最短路】dijstra poj 1502
#include <cstdio> #include <iostream> #include <stdlib.h> #include <memory.h> ...
- Happy Matt Friends
Happy Matt Friends Time Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Oth ...
- 购物车CheckBox全选、反选
注意:不是很完美 //--------------------主布局文件--------------------------------- <LinearLayout xmlns:android ...
- 利用BFS求最短路
利用BFS求图的最短路, POJ3984 #define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<string.h& ...
- redhat安装wine
在基于RedHat或Debian的系统上安装 Wine 1.7 原创:LCTT https://linux.cn/article-3723-1.html Wine,Linux上最流行也是最有力的软件, ...
- 转:webdriver驱动未在默认目录安装的firefox
刚开始用webdriver的朋友一定会苦恼它时常不能启动firefox,很多时候是因为firefox安装在默认路径下.此时,我们有些常用方法,可以解决此问题. [1] System.setProper ...