描述

使用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. java的GC与内存泄漏

    从诞生至今,20多年过去,Java至今仍是使用最为广泛的语言.这仰赖于Java提供的各种技术和特性,让开发人员能优雅的编写高效的程序.今天我们就来说说Java的一项基本但非常重要的技术内存管理 了解C ...

  2. jquery中:input和input的区别

    :input表示选择表单中的input,select,textarea,button元素, input仅仅选择input元素. <button>和<input type=" ...

  3. centos7下yum快速安装 mariadb(mysql)

    从最新版本的centos系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install mariadb mariadb-server systemc ...

  4. 【BZOJ2253】纸箱堆叠 [CDQ分治]

    纸箱堆叠 Time Limit: 30 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description P 工厂是一个生产纸箱的工厂. 纸 ...

  5. 使用QML创建第一个界面(转)

    原文转自 https://blog.csdn.net/rl529014/article/details/51378307 在Qt编程中,我们可以使用纯C++代码,或C++和XML结合的方式来创建GUI ...

  6. Linux-进程间通信(一): 管道

    1. 管道局限性: (1) 半双工:(若模拟全双工,可以使用两个管道,即,proc1-->proc2一条管道,proc2-->proc1一条管道) (2) 只能在具有公共祖先的进程之间使用 ...

  7. iptables 用法及常用模块总结

    iptables传输数据包的过程: 1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去. 2. 如果数据包就是进入本机的,它就会沿着图向下移动, ...

  8. 只运行一个exe应用程序的使用案例

    应用程序的exe启动设置 using System;using System.Diagnostics;using System.Reflection;using System.Runtime.Inte ...

  9. django日志的设置

    关于django的日志设置详细可以看下官方文档:https://yiyibooks.cn/xx/Django_1.11.6/topics/logging.html 示例: # 日志文件配置 LOGGI ...

  10. win32 读取文本文件,并进行字符串分割和存储

    //分割字符      char *p;//p存放临时行指针 q存放临时每一行的列指针      char *hang[100]={0};//存储第一行      char *lie[300]={0} ...