描述

使用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的更多相关文章

  1. TZOJ-STL系列题

    C++实验:STL之vector #include <bits/stdc++.h> using namespace std; void Input(vector<int>&am ...

  2. 详细解说 STL 排序(Sort)

    0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...

  3. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  4. STL的std::find和std::find_if

    std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...

  5. STL: unordered_map 自定义键值使用

    使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...

  6. C++ STL简述

    前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...

  7. codevs 1285 二叉查找树STL基本用法

    C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...

  8. STL bind1st bind2nd详解

    STL bind1st bind2nd详解   先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...

  9. STL sort 函数实现详解

    作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...

随机推荐

  1. Optimize Prime Sieve

    /// A heavily optimized sieve #include <cstdio> #include <cstring> #include <algorith ...

  2. Input操作文件

    在HTML表单中,可以上传文件的唯一控件就是<input type="file">. 注意:当一个表单包含<input type="file" ...

  3. ES6学习笔记(一)——Promise

    Promise 是 ES6 提供的一种异步编程的解决方案: 将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数(解决异步函数回调地狱的问题).Promise 对象保存着异步操作的结果. 首先 ...

  4. Ubuntu下kafka集群环境搭建及测试

    kafka介绍: Kafka[1是一种高吞吐量[2]  的分布式发布订阅消息系统,有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能 ...

  5. 一张图介绍 html中offset、client、scroll、offset 、padding、margin 各种属性介绍

  6. dms程序调试

    Q:程序编译通过后,出现tomcat 端口被占用问题 参考 http://www.cnblogs.com/HoverM/p/3872163.html 先使用netstat   -ano|findstr ...

  7. 运行微信支付demo

    首先要说说写这篇文章的初衷:集成支付宝支付运行demo都是可以正常运行的,但是我下载下来微信支付的demo,却发现一大堆报错,而且相关文章几乎没有,可能大家觉得没必要,也许你觉得很简单:但是技术大牛都 ...

  8. OSSIM 4 组件目录

    在查找openvas问题的时候,发现: 主要组件的配置文件目录:/etc/default主要组件的安装目录:/usr/share 感觉和kali linux的的结构类似.

  9. Asp.net中的一个判断session是否合法的做法

    1 if (Session["UserID"] == "" || Session["UserID"] == null) 2 { 3     ...

  10. opencv图像二值化的函数cvThreshold()。 cvAdaptiveThreshol

    OpenCV中对图像进行二值化的关键函数——cvThreshold(). 函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* sr ...