没有找到priority_queue里存放pair不用typedef的方法...大概第一次觉得这个有用吧...

优先队列里和sort函数对pair 的默认排序是first从小到大,second从小到大,可以自定义cmp比较函数。

测试代码:

#include <stdio.h>
#include <string.h>
#include <queue>
#include <vector>
#include <iostream>
using namespace std; int main() {
int t;
while(cin >> t) {
typedef pair<int, int>pa;
priority_queue<pa, vector<pa>, greater<pa> >que;
while(t--) {
int a, b;
cin >> a >> b;
pa pairr = make_pair(a, b);
que.push(pairr);
}
cout << "output-----------\n";
while(!que.empty()) {
pa pairr = que.top();
cout << pairr.first << " " << pairr.second << endl;
que.pop();
}
cout << "==========\n";
}
return 0;
}

  

测试代码:

#include <stdio.h>
#include <string.h>
#include <queue>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std; typedef pair<int, int>pa; bool cmp(pa a, pa b) {
if (a.second != b.second)
return a.second > b.second;
else return a.first > b.first;
} int main() {
int t;
while(cin >> t) {
pa pairs[10];
for (int i=0; i<t; ++i) {
int a, b;
cin >> a >> b;
pairs[i] = make_pair(a, b);
} cout << "output-----------\n";
sort(pairs, pairs+t);
for (int i=0; i<t; ++i) {
cout << pairs[i].first << " " << pairs[i].second << endl;
}
cout << "==========\n"; cout << "output-----------\n";
sort(pairs, pairs+t, cmp);
for (int i=0; i<t; ++i) {
cout << pairs[i].first << " " << pairs[i].second << endl;
}
cout << "==========\n";
}
return 0;
}

  

  

C++ STL pair的更多相关文章

  1. C++ STL pair详解

    一.解释: p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: left ...

  2. STL——pair

    功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问. #include <bits/stdc++ ...

  3. STL pair类型的介绍

    pair标准库类型它定义在头文件utility中. 一个pair保存两个数据成员.类似容器,pair是一个用来生成特定类型的模板.当创建一个pair时,我们必须提供两个类型名,pair的数据成员将具有 ...

  4. STL pair 常见用法详解

    <算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...

  5. Linux环境下stl库使用(map)

    例子1: testMap.cpp #include <string.h> #include <iostream> #include <map> #include & ...

  6. make_pair

    Utilities <utility> 由短小精干的类和函数构成,执行最一般性的工作. 这些工具包括: general types 一些重要的C函数 numeric limits Pair ...

  7. ACM在线模板

    转载自:https://blog.csdn.net/f_zyj/article/details/51594851 Index 分类细则 说起分类准则,我也是很头疼,毕竟对于很多算法,他并不是单调的,而 ...

  8. 【转】c++ make_pair函数使用

    [好记性不如烂笔头:在<C++ Templates>看到这个函数,发现正是前段时间写项目程序所要用到的,可惜当时还不知道有这个用法,当时是自己写了个结构体..]Utilities < ...

  9. [CF1053C]Putting Boxes Together(线段树)

    http://codeforces.com/blog/entry/62013 两个结论: 1.一定有一个箱子不用动. 2.不动的箱子一定是加权前缀和为S/2的那个. 1显然,2由1易得. 于是问题变为 ...

随机推荐

  1. iOS - OC RunTime 运行时

    1.运行时的使用 向分类中添加属性 // 包含运行时头文件 #import <objc/runtime.h> /* void objc_setAssociatedObject(id obj ...

  2. iOS - Swift NSData 数据

    前言 public class NSData : NSObject, NSCopying, NSMutableCopying, NSSecureCoding public class NSMutabl ...

  3. [转载] nginx的负载均衡

    原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...

  4. bootstrap学习笔记<一>(bootstrap用法)

    首先引入bootstrap官网链接:http://www.bootcss.com/ bootstrap 3下载地址:http://v3.bootcss.com/getting-started/#dow ...

  5. linux install sublime_text3

    ubuntu & debian: (baidu or google) 1). download ***.deb to install inux系统下怎么安装.deb文件? deb 是 ubun ...

  6. Eclipse NDK 配置

    一.关于NDK:NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java ...

  7. 在Maven中设置Nexus私有服务为中央工厂(repository)

    原文:http://blog.csdn.net/mexican_jacky/article/details/50275695 nexus中的仓库列表 第一种方式: <repositories&g ...

  8. java读取properties配置文件的方法

    app.properties mail.smtp.host=smtp.163.com mail.transport.protocol=smtp import java.io.InputStream; ...

  9. Maven打包遇到的一些问题(zhuan)

    http://qqbwww.iteye.com/blog/2042307 **************************************** #Maven打包遇到的一些问题 ## 1.将 ...

  10. hiho_1070_RMQ

    题目 区间最小值查询,但是支持对数组中的任意数字进行修改. 分析 采用RMQ_ST算法的O(1)算法不支持修改,因为每次修改都要重新设置动归数组.因此采用线段树解决,修改和查询的复杂度均为O(logN ...