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函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
随机推荐
- java的GC与内存泄漏
从诞生至今,20多年过去,Java至今仍是使用最为广泛的语言.这仰赖于Java提供的各种技术和特性,让开发人员能优雅的编写高效的程序.今天我们就来说说Java的一项基本但非常重要的技术内存管理 了解C ...
- jquery中:input和input的区别
:input表示选择表单中的input,select,textarea,button元素, input仅仅选择input元素. <button>和<input type=" ...
- centos7下yum快速安装 mariadb(mysql)
从最新版本的centos系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install mariadb mariadb-server systemc ...
- 【BZOJ2253】纸箱堆叠 [CDQ分治]
纸箱堆叠 Time Limit: 30 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description P 工厂是一个生产纸箱的工厂. 纸 ...
- 使用QML创建第一个界面(转)
原文转自 https://blog.csdn.net/rl529014/article/details/51378307 在Qt编程中,我们可以使用纯C++代码,或C++和XML结合的方式来创建GUI ...
- Linux-进程间通信(一): 管道
1. 管道局限性: (1) 半双工:(若模拟全双工,可以使用两个管道,即,proc1-->proc2一条管道,proc2-->proc1一条管道) (2) 只能在具有公共祖先的进程之间使用 ...
- iptables 用法及常用模块总结
iptables传输数据包的过程: 1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去. 2. 如果数据包就是进入本机的,它就会沿着图向下移动, ...
- 只运行一个exe应用程序的使用案例
应用程序的exe启动设置 using System;using System.Diagnostics;using System.Reflection;using System.Runtime.Inte ...
- django日志的设置
关于django的日志设置详细可以看下官方文档:https://yiyibooks.cn/xx/Django_1.11.6/topics/logging.html 示例: # 日志文件配置 LOGGI ...
- win32 读取文本文件,并进行字符串分割和存储
//分割字符 char *p;//p存放临时行指针 q存放临时每一行的列指针 char *hang[100]={0};//存储第一行 char *lie[300]={0} ...