博客
关于我
pair的用法
阅读量:554 次
发布时间:2019-03-09

本文共 1375 字,大约阅读时间需要 4 分钟。

#include <bits/stdc++.h>

using namespace std;

// 比较结构cmp1,按first降序,否则按second升序

struct cmp1{
bool operator()(const pair<int,int>& a, const pair<int,int>& b){
if(a.first != b.first)
return a.first > b.first;
else
return a.second < b.second;
}

// 比较结构cmp2,按second升序,否则按first降序

struct cmp2{
bool operator()(const pair<int,int>& q1, const pair<int,int>& q2){
if(q1.first == q2.first)
return q1.second > q2.second;
else
return q1.first < q2.first;
}

int main(){

// pair的基本用法
pair<int,double> p1(1, 2.2);
pair<int,double> p2;
p2 = p1;
cout << p2.first << " " << p2.second << endl;
p2 = make_pair(1,3);
cout << p2.first << " " << p2.second << endl;

// pair结合其他的用法  pair
p3[10]; for(int i = 0; i < 5; ++i){ p3[i] = make_pair(i, i+1); } sort(p3, p3+5, cmp1); for(int i = 0; i < 5; ++i){ cout << p3[i].first << " " << p3[i].second << endl; } vector
> p4; for(int i = 0; i < 5; ++i){ p4.push_back({1, i+1}); p4.push_back(make_pair(i, i+1)); } sort(p4.begin(), p4.end(), cmp1); int len = p4.size(); for(int i = 0; i < len; ++i){ cout << p4[i].first << " " << p4[i].second << endl; } priority_queue
, vector
>, Greater
> p5; p5.push({2,2}); p5.push({1,2}); p5.push({2,3}); while(!p5.empty()){ cout << p5.top().first << " " << p5.top().second << endl; p5.top(); p5.pop(); }

}

转载地址:http://onwpz.baihongyu.com/

你可能感兴趣的文章
Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(下)
查看>>
Nacos心跳机制实现快速上下线
查看>>
Nacos服务注册与发现demo
查看>>
Nacos服务注册总流程(源码分析)
查看>>
nacos服务注册流程
查看>>
Nacos服务部署安装
查看>>
nacos本地可以,上服务器报错
查看>>
Nacos注册中心有几种调用方式?
查看>>
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
查看>>
Nacos简介、下载与配置持久化到Mysql
查看>>
Nacos简介和控制台服务安装
查看>>
Nacos管理界面详细介绍
查看>>
Nacos编译报错NacosException: endpoint is blank
查看>>
nacos自动刷新配置
查看>>
nacos运行报错问题之一
查看>>
Nacos部署中的一些常见问题汇总
查看>>
NACOS部署,微服务框架之NACOS-单机、集群方式部署
查看>>
Nacos配置Mysql数据库
查看>>