STL之priority_queue3
描述
使用STL中的优先队列,将n个点按照横坐标从小到大顺序排序,如果横坐标相同,按照纵坐标从小到大排序。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
int main()
{
int n;
cin>>n;
while(n--)
{
Input();
while(!qu.empty())
{
Point p = qu.top();
cout<<p.x<<" "<<p.y<<endl;
qu.pop();
}
}
return 0;
}
输入
输入数据有多组,第一行为t,接下来有t组数据。
每组的第一行为正整数n,接下来有n行,每行一个点,包含横坐标和纵坐标,均为整数。
输出
每组输出排序后的所有点,每行一个点。
样例输入
2
3
3 2
2 3
4 1
4
1 2
3 3
1 1
3 2
样例输出
2 3
3 2
4 1
1 1
1 2
3 2
3 3
#include <iostream>
#include <queue>
#include <vector>
#include <functional>
#include <deque>
using namespace std;
typedef struct Point {
int x;
int y;
bool operator>(const Point &p) const
{
if(x!=p.x)
return x>p.x;
return y>p.y;
}
}Point;
priority_queue< Point,vector<Point>,greater<Point> > qu;
void Input()
{
Point p;
int n;
cin>>n;
while(n--)
{
cin>>p.x>>p.y;
qu.push(p);
}
}
int main()
{
int n;
cin>>n;
while(n--)
{
Input();
while(!qu.empty())
{
Point p = qu.top();
cout<<p.x<<" "<<p.y<<endl;
qu.pop();
}
}
return ;
}
STL之priority_queue3的更多相关文章
- TZOJ-STL系列题
C++实验:STL之vector #include <bits/stdc++.h> using namespace std; void Input(vector<int>&am ...
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- STL的std::find和std::find_if
std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...
- STL: unordered_map 自定义键值使用
使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...
- C++ STL简述
前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- STL bind1st bind2nd详解
STL bind1st bind2nd详解 先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
随机推荐
- Optimize Prime Sieve
/// A heavily optimized sieve #include <cstdio> #include <cstring> #include <algorith ...
- Input操作文件
在HTML表单中,可以上传文件的唯一控件就是<input type="file">. 注意:当一个表单包含<input type="file" ...
- ES6学习笔记(一)——Promise
Promise 是 ES6 提供的一种异步编程的解决方案: 将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数(解决异步函数回调地狱的问题).Promise 对象保存着异步操作的结果. 首先 ...
- Ubuntu下kafka集群环境搭建及测试
kafka介绍: Kafka[1是一种高吞吐量[2] 的分布式发布订阅消息系统,有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能 ...
- 一张图介绍 html中offset、client、scroll、offset 、padding、margin 各种属性介绍
- dms程序调试
Q:程序编译通过后,出现tomcat 端口被占用问题 参考 http://www.cnblogs.com/HoverM/p/3872163.html 先使用netstat -ano|findstr ...
- 运行微信支付demo
首先要说说写这篇文章的初衷:集成支付宝支付运行demo都是可以正常运行的,但是我下载下来微信支付的demo,却发现一大堆报错,而且相关文章几乎没有,可能大家觉得没必要,也许你觉得很简单:但是技术大牛都 ...
- OSSIM 4 组件目录
在查找openvas问题的时候,发现: 主要组件的配置文件目录:/etc/default主要组件的安装目录:/usr/share 感觉和kali linux的的结构类似.
- Asp.net中的一个判断session是否合法的做法
1 if (Session["UserID"] == "" || Session["UserID"] == null) 2 { 3 ...
- opencv图像二值化的函数cvThreshold()。 cvAdaptiveThreshol
OpenCV中对图像进行二值化的关键函数——cvThreshold(). 函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* sr ...