STL中priority_queue的声明模板有3个参数priority_queue<Type,Container,Functional>。

当使用的数据类型Type为自定义数据类型时有以下3种方法。

1)写仿函数

 #include<iostream>
#include<queue>
using namespace std;
struct Node
{
int x,y;
};
struct cmp
{
bool operator()(Node a,Node b)
{
if(a.x!=b.x)
return a.x<b.x;//<为大顶堆,>为小顶堆
return a.y<b.y;
}
};
int main()
{
Node node[]={{,},{,},{,},{,},{,},{,},{,},{,},{,}};
//建立9个结点
priority_queue <Node,vector<Node>,cmp> q(node,node+);//将9个点存入优先队列q
while(!q.empty())//输出
{
Node n=q.top();
cout<<n.x<<' '<<n.y<<endl;
q.pop();
}
return ;
}

2)数据类型外重载operator<

 #include<iostream>
#include<queue>
using namespace std;
struct Node
{
int x,y;
};
bool operator<(Node a,Node b)
{
if(a.x!=b.x)
return a.x<b.x;//<为大顶堆,>为小顶堆
return a.y<b.y;
}
int main()
{
Node node[]={{,},{,},{,},{,},{,},{,},{,},{,},{,}};
//建立9个结点
priority_queue <Node> q(node,node+);//将9个点存入优先队列q
while(!q.empty())//输出
{
Node n=q.top();
cout<<n.x<<' '<<n.y<<endl;
q.pop();
}
return ;
}

3)数据类型内重载operator<

 #include<iostream>
#include<queue>
using namespace std;
struct Node
{
int x,y;
bool operator<(const Node a)const
{
if(x!=a.x)
return x<a.x;
return y<a.y;
}
};
int main()
{
Node node[]={{,},{,},{,},{,},{,},{,},{,},{,},{,}};
//建立9个结点
priority_queue <Node> q(node,node+);//将9个点存入优先队列q
while(!q.empty())//输出
{
Node n=q.top();
cout<<n.x<<' '<<n.y<<endl;
q.pop();
}
return ;
}

STL--priority_queue--自定义数据类型的更多相关文章

  1. 通过SQL Server自定义数据类型实现导入数据

    写在前面 在看同事写的代码时看到了SQL Server中可以自定义数据类型,而且定义的是DataTable类型的数据类型. 后我想起了以前我们导入数据时要么是循环insert写入,要么是SqlBulk ...

  2. hadoop的自定义数据类型和与关系型数据库交互

    最近有一个需求就是在建模的时候,有少部分数据是postgres的,只能读取postgres里面的数据到hadoop里面进行建模测试,而不能导出数据到hdfs上去. 读取postgres里面的数据库有两 ...

  3. OSG 自定义数据类型 关键帧动画

    OSG 自定义数据类型 关键帧动画 转自:http://blog.csdn.net/zhuyingqingfen/article/details/12651017 /* 1.创建一个AnimManag ...

  4. Oracle存储过程-自定义数据类型,集合,遍历取值

    摘要 Oracle存储过程,自定义数据类型,集合,遍历取值 目录[-] 0.前言 1.Packages 2.Packages bodies 3.输出结果 0.前言 在Oracle的存储过程中,可能会遇 ...

  5. Oracle自定义数据类型 1

    原文 oracle 自定义类型 type / create type 一 Oracle中的类型 类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nva ...

  6. Hadoop-MapReduce之自定义数据类型

    以下是自定义的一个数据类型,有两个属性,一个是名称,一个是开始点(可以理解为单词和单词的位置) MR程序就不写了,请看WordCount程序. package cn.genekang.hadoop.m ...

  7. Sql Server 自定义数据类型

    SQLServer 提供了 25 种基本数据类型: ·Binary [(n)]  二进制数据 既可以是固定长度的(Binary),也可以是变长度的.其中,n 的取值范围是从 1 到 8000.其存储窨 ...

  8. STL - priority_queue(优先队列)

    优先级队列priority_queue 最大值优先级队列.最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用. priority_queue<int ...

  9. 初识Haskell 五:自定义数据类型和类型类

    对Discrete Mathematics Using a Computer的第一章Introduction to Haskell进行总结.环境Windows 自定义数据类型 data type de ...

  10. 如何在Qt中使用自定义数据类型

    这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样): struct Player { int number; QString firstName; QString ...

随机推荐

  1. spring的jdbc具名参数

    在jdbc的模板中使用具名参数: 1.就需要在之前的jdbc的例子中进行修改:需要在xml文件中重新配置一个bean.这是固定的格式.如下 对于使用具名参数而言.配置NamedParameterJdb ...

  2. 使用tap、Fragment等相关相关知识点。实现类似微信的界面

    实验结果,可以实现通过左右活动来切换不同的界面.也可以通过点击不同的下方按钮来实现切换不同的界面. 自己也添加了相关的自己编写的小页面来展示相关的效果.主要的是对于碎片Fragment对于tap的相关 ...

  3. docker 私有仓库 删除镜像

    1.查找官方删除法 https://github.com/burnettk/delete-docker-registry-image 2.民用删除法 https://segmentfault.com/ ...

  4. Python zipfile模块学习

    转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...

  5. Lua 5.3 -- SOL2.0 用户指南 【1】

    SOL2.2 是一个快速.简单的C++与LUA的绑定器.如果确定要在你的程序里面同时运行Lua和C++,SOL 是一个高性能的绑定器,是一个API使用方便的 GO-TO 框架. 简单看一下特点:这个链 ...

  6. std::string::insert函数

    string& insert (size_t pos, const string& str); string& insert (size_t pos, const string ...

  7. 内存对齐 align

    /* 地址对齐:指的是存放数据的首地址%N==0,而且整个结构体的大小%M(结构体的有效对齐值)==0 1 数据类型的自身对齐值:char:1 short:2 int,flolat,double:4 ...

  8. CSS盒模型属性详细介绍

    一.概述 CSS盒模型是定义元素周围的间隔.尺寸.外边距.边框以及文本内容和边框之间内边距的一组属性的集合. 示例代码: <!DOCTYPE html> <html lang=&qu ...

  9. mysql定期任务

    进来开发项目时遇到一个问题,就是每一周需要清理服务器数据库数据.现在我就来记录一下用Navicat for MySQL 来实现定时任务. 1.启动Navicat for MySQL,新建数据库连接,打 ...

  10. N - Aroma's Search CodeForces - 1293D math+greedy

    作为DIV2的D题来讲,这个题目不算难. 题目大意:再规定的时间内寻找宝藏,第i个宝藏的位置为a*x(i-1)+b,a*y(i-1)+b.然后给出初始位置xs,ys和时间t让求再时间t内能够寻找到多少 ...