PriorityQueue&&Function overload
用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class priority_queue
{
private:
vector<int> data;
public:
void push( int t ){
data.push_back(t);
push_heap( data.begin(), data.end());
}
void pop(){
pop_heap( data.begin(), data.end() );
data.pop_back();
}
int top() { return data.front(); }
int size() { return data.size(); }
bool empty() { return data.empty(); }
};
priority_queue常用的函数:
top:读入顶端元素
pop:删除顶端元素
size:返回元素个数
push:加入一个元素
empty:如果为空,返回true
优先级队列(priority_queue)的实现方式是堆(heap), 默认是输出最大值
输出最小值, 需要指定参数, priority_queue<int, vector<int>, greater<int> >
#include <stdio.h>
#include <queue>
#include <vector>
#include <functional>
using namespace std;
int main(void)
{
priority_queue<int, vector<int>, greater<int> > pque;
pque.push(3);
pque.push(5);
pque.push(1);
pque.push(4);
while (!pque.empty()) {
printf("%d ", pque.top());
pque.pop();
}
printf("\n");
return 0;
}
C++的函数重载
http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html
http://www.cnblogs.com/yshl-dragon/archive/2013/05/10/3067161.html
PriorityQueue&&Function overload的更多相关文章
- c++语言友元函数和成员函数对运算符重载
#include<iostream> using namespace std; /******************************************/ /*use mem ...
- javascript数据结构-优先队列
这里之所以扩充一个 有限队列 是因为,生活使用中队列通常会附加优先级,比如排队买票,一般老人和军人等会有优先权限. 实现:继承上篇的 普通队列实现.这里用一种方法,入队的时候,进行排序插入到指定位置, ...
- Google C++ Style Guide
Background C++ is one of the main development languages used by many of Google's open-source project ...
- 【转】 C++模板详解
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数.返回值取得任意类型. 模板是一种对类型进行参数化的工具: 通常有 ...
- 你或许不了解的C++函数调用(1)
这篇博客名字起得可能太自大了,搞得自己像C++大牛一样,其实并非如此.C++有很多隐藏在语法之下的特性,使得用户可以在不是特别了解的情况下简单使用,这是非常好的一件事情.但是有时我们可能会突然间发现一 ...
- C++@sublime GDB调试
正文转自:http://www.cppblog.com/lucency/archive/2012/08/09/59214.html 之前在网上搜索了好久使用sublime调试C和C++的文章,但是徒劳 ...
- 跨平台渲染框架尝试 - Texture管理
纹理是渲染器重要的资源,也是比较简单的资源.本文将详细讨论纹理资源的管理. 在资源管理概述中提到,资源就是一堆内存和CPU与GPU的访问权限.纹理管理在资源管理之上,要负责如何使用者一堆内存构造纹理对 ...
- (转) class II
Overloading operators Classes, essentially, define new types to be used in C++ code. And types in ...
- Boost 1.61.0 Library Documentation
http://www.boost.org/doc/libs/1_61_0/ Boost 1.61.0 Library Documentation Accumulators Framework for ...
- JavaScript 高级程序设计(第3版)笔记——chapter3:基本概念(函数部分)
3.7函数 3.7.1 理解参数 ECMAScript 函数不介意传递进来多个参数,也不在乎传递进来的参数是什么数据类型.因为在 ECMAScript 中的参数在内部是用一个数组来表示的.在函数体内可 ...
随机推荐
- http头部meta 作用
<meta charset="utf-8"> <!-- 设置文档字符编码 --> <meta http-equiv="x-ua-compat ...
- select multiple 浏览器兼容
select multiple 时一般是设置 height <select multiple="multiple" style="height:87px;" ...
- 基于recorder.js H5录音功能
兼容性 1.Chrome,FF,Edge,QQ,360(注:现有IE和Safari全版本不兼容) 2.其中Chrome47以上以及QQ浏览器强制要求HTTPS的支持 3.请尝试使用FF,Edge,36 ...
- 4K60帧!RayLink远程控制软件如何帮助设计师远程办公?
司机在家能远程工作吗?大写的"能"!!!如果你听说过司机远程办公,那你一定对下面这张图不陌生~ (远程办公的叉车司机) 这张图展示的是负责在库房工作的叉车司机在非办公区域远程办公的 ...
- Joseph Problem With Passwords In Java
问题描述: 编号为1,2,......,n的n个人(每个人的信息有编号.姓名和密码三项)按照顺时针方向围坐一圈, 每个人有且只有一个密码(正整数,密码用随机方式赋值,范围1-15).一开始任选一个正整 ...
- Counting Triangles
- zabbix如何修改web字体
1.拷贝一个你喜欢的字体到zabbix-server的/usr/share/zabbix/assets/fonts目录下 2.cd /usr/share/zabbix vim include/def ...
- mysql8.0修改密码
把密码设置为空:UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost'; 查看USE ...
- How to Check and Repair EXT4 Filesystem in Linux
The fsck (stands for File System Consistency Check) is used to check and repair one or more Linux fi ...
- JS事件中的target,currentTarget及事件委托
1.target只存在其事件流的目标阶段,指向事件发生时的元素. 2.currentTarget:可位于捕获,目标和冒泡阶段,始终指向绑定事件的元素.如div>ul>li结构,事件委托在d ...