STL--priority_queue--自定义数据类型
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--自定义数据类型的更多相关文章
- 通过SQL Server自定义数据类型实现导入数据
写在前面 在看同事写的代码时看到了SQL Server中可以自定义数据类型,而且定义的是DataTable类型的数据类型. 后我想起了以前我们导入数据时要么是循环insert写入,要么是SqlBulk ...
- hadoop的自定义数据类型和与关系型数据库交互
最近有一个需求就是在建模的时候,有少部分数据是postgres的,只能读取postgres里面的数据到hadoop里面进行建模测试,而不能导出数据到hdfs上去. 读取postgres里面的数据库有两 ...
- OSG 自定义数据类型 关键帧动画
OSG 自定义数据类型 关键帧动画 转自:http://blog.csdn.net/zhuyingqingfen/article/details/12651017 /* 1.创建一个AnimManag ...
- Oracle存储过程-自定义数据类型,集合,遍历取值
摘要 Oracle存储过程,自定义数据类型,集合,遍历取值 目录[-] 0.前言 1.Packages 2.Packages bodies 3.输出结果 0.前言 在Oracle的存储过程中,可能会遇 ...
- Oracle自定义数据类型 1
原文 oracle 自定义类型 type / create type 一 Oracle中的类型 类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nva ...
- Hadoop-MapReduce之自定义数据类型
以下是自定义的一个数据类型,有两个属性,一个是名称,一个是开始点(可以理解为单词和单词的位置) MR程序就不写了,请看WordCount程序. package cn.genekang.hadoop.m ...
- Sql Server 自定义数据类型
SQLServer 提供了 25 种基本数据类型: ·Binary [(n)] 二进制数据 既可以是固定长度的(Binary),也可以是变长度的.其中,n 的取值范围是从 1 到 8000.其存储窨 ...
- STL - priority_queue(优先队列)
优先级队列priority_queue 最大值优先级队列.最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用. priority_queue<int ...
- 初识Haskell 五:自定义数据类型和类型类
对Discrete Mathematics Using a Computer的第一章Introduction to Haskell进行总结.环境Windows 自定义数据类型 data type de ...
- 如何在Qt中使用自定义数据类型
这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样): struct Player { int number; QString firstName; QString ...
随机推荐
- SpringCloud(三)之我学 Hystrix
1.断路器 在消费服务的启动类,添加注解:@EnableCircuitBreaker,在消费服务的调用类上,添加注解:@HystrixCommand(fallbackMethod = "&q ...
- Tkinter布局管理器
Layout management in Tkinter 原英文教程地址:zetcode.com In this part of the Tkinter tutorial, we introduce ...
- 听说这个 IP 和子网掩码异常难算
IP地址格式 每个Internet主机或路由器都有IP地址.所有的IP地址包括网络号和主机号(就像是手机号,前几位是区号,后几位是序列号). 说明如下 A类地址用于主机数目非常多的网络.A类地址允许有 ...
- java web知识点复习,重新编写学生选课系统的先关操作。
为了复习之前学习的相关的html,javaweb等知识.自己有重新编写了一遍学生选课系统. 下面主要展示登录界面的代码,以及各个大的主页面的相关jsp. <%@ page language=&q ...
- MTK Android 预置APK
[FAQ03038] 如何预置APK [DESCRIPTION]1, 如何将带源码的 APK 预置进系统?2, 如何将无源码的APK预置进系统?3, 如何预制APK使得用户可以卸载?4, 如何使得用户 ...
- MTK Android Driver :Camera
MTK Android Driver :camera 1.相关代码位置:mediatek\config\XXXX(红色字为具体的项目名) 文件:ProjectConfig.mk CUSTOM_KERN ...
- Java第十三天,内部类
内部类 一.①成员内部类.②局部内部类(包含③匿名内部类) 1.内部类用外部类属性和方法的时候,可以随意进行访问. 2.外部类用内部类属性和方法的时候,需要通过内部类对象访问. 3.在编译成class ...
- Java第八天,抽象的概念是什么?如何完成抽象类的实现?
抽象 面向对象编程中,抽象是一个很重要的概念,那么抽象有什么需要注意的地方呢?请熟记以下知识点. 如果父类当中的方法不确定如何进行方法体的实现,则这个方法就是抽象方法. 抽象方法只需要在方法前面加上a ...
- [go]map基本使用和底层原理
1.map基本使用 map声明 var m4 map[int]int //只是声明 没有开辟空间 m4[1]=100 //报错 log.Println(m4) 创建 //1 m3:=make(map[ ...
- MySQL exists的用法
有一个查询如下: 1 SELECT c.CustomerId, CompanyName 2 FROM Customers c 3 WHERE EXISTS( 4 SELECT OrderID FROM ...