pair<>结构体模版的用法
1.pair算是一个结构体模版,定义的时候是这样的:
pair<T1,T2> P;
其中T1,T2可以是int,string,double,甚至是vector<>。
2.进行初始化是这样的:
pair<int,int> a(,);
也可以借用make_pair()函数:
pair<int,int> a; a=make_pair(,);
3.进行调用是很简单的:
pair<int,int> a(,);
printf("%d %d",a.first,a,second);
4.如果对pair进行排序,进行的是字典序比较。
pair<int,int> a[];
可以用sort(a,a+100)进行排序。
5.下面有个小程序来展示他的用法。
(这个程序用于解决贪心法当中的区间调度问题。)
#include <iostream>
#include <cstdio>
#include <algorithm> using namespace std; const int MAX_N=;
int N,S[MAX_N],T[MAX_N];
pair<int,int> itv[MAX_N]; void solve(){
//对pair进行的是字典序比较
//为了让结束时间早的工作排在前面,把T存入first,把S存入second
for(int i=;i<N;i++){
itv[i].first=T[i];
itv[i].second=S[i];
}
sort(itv,itv+N);
//t是最后所选工作的结束时间。
int ans=,t=;
for(int i=;i<N;i++){
if(t<itv[i].second){
ans++;
t=itv[i].first;
}
}
printf("%d\n",ans);
} /*
本程序用于解决贪心法当中的区间调度问题
测试数据
5
1 2 4 6 8
3 5 7 9 10
*/
int main()
{
scanf("%d",&N);
for(int i=;i<N;i++){
scanf("%d",&S[i]);
}
for(int i=;i<N;i++){
scanf("%d",&T[i]);
}
solve();
return ;
}
pair<>结构体模版的用法的更多相关文章
- MATLAB 单元数组 cell 和结构体 struct 的用法以及区别
1. 前言 Matlab单元数组cell和结构体struct都可以将不同类型的相关数据集成到一个单一的变量中,使得大量的相关数据的处理变得非常简单而且方便.但是,需要注意的是,单元数组和结构体只是承载 ...
- C++_系列自学课程_第_12_课_结构体
#include <iostream> #include <string> using namespace std; struct CDAccount { double bal ...
- 瘋子C语言笔记(结构体/共用体/枚举篇)
(一)结构体类型 1.简介: 例: struct date { int month; int day; int year; }; struct student { int num; char name ...
- 认识C中的结构体
C中结构体是另外一种表示数据形式的方式,结构体中可以表示C中的基本数据形式,如int,double....结构体可以让我们更好的表示数据.下面来看看结构体. 说到结构体首先要了解的是它的申明形式,要申 ...
- C语言 Struct 结构体在 Java 中的体现
大一整个学期完成了 C 语言的学习,大二就进入了Java 的学习. 和C语言一样,我们都会尝试写一个小小的学生管理系统什么的,学习过 C 语言同学知道,在管理系统中 Struct 结构体是个很好用的东 ...
- 【阅读笔记】《C程序员 从校园到职场》第七章 指针和结构体
原文地址:让你提前认识软件开发(13):指针及结构体的使用 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2387299 ...
- Go语言规格说明书 之 结构体类型(Struct types)
go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...
- 利用sort对结构体进行排序
我定义了一个学生类型的结构体来演示sort排序对结构体排序的用法 具体用法看代码 #include<iostream> #include<string> #include< ...
- 在Main中定义student的结构体,进行年龄从大到小依次排序录入学生信息。(结构体的用法以及冒泡排序)
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
随机推荐
- ThinkPHP3.2对接开发支付宝即时到帐接口
ThinkPHP3.2对接开发支付宝即时到帐接口 在做一些商城.自动发卡网站.会员积分充值.金币充值等等这类网站都时候,我们极大可能需要使用到第三方都支付接口.不管是财付通.支付宝.银联.贝宝.易宝这 ...
- HDOJ 4497 GCD and LCM
组合数学 GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- STM32F103xx bxCAN(Basic Extended CAN) 滤波机制
一.背景 最近一个项目需要使用STM32F103xx实现CAN通信,而CAN总线的消息滤波在各个MCU上有不同机制, 譬如,SJA1000为标识符位屏蔽滤波机制,NXP的LPC17xx系列为标识符列表 ...
- Hanoi问题
#include<stdio.h>int main(){ int m; void hanoi(int n,char x,char y,char z); printf("input ...
- git之remote branch controller(远程分支控制)
1.创建本地分支 git branch //查看远程分支 git checkout -b branch_name //创建远程分支 在查看分支git branch 2.将分支提交到远程仓库 此时远程 ...
- mysql不同版本号之间的一些区别
5.1.69-community和5.6.26-log版本相比,有一些语法不支持,如: datetime(3),CURRENT_TIMESTAMP(3)
- HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902 解题报告:输入一个序列,然后有q次操作,操作有两种,第一种是把区间 (l,r) 变成x,第二种是 ...
- objc@interface的设计哲学与设计技巧
blog.sunnyxx.com 我是前言 学习objc时,尤其是先学过其他编程语言再来看objc时,总会对objc的类声明的关键字interface感到有点奇怪,在其它面向对象的语言中通常由clas ...
- word20161205
cluster-aware application / 支持群集的应用程序 cluster-unaware application / 不支持群集的应用程序 Cluster.exe CNAME (ca ...
- Caffe学习系列(15):添加新层
如何在Caffe中增加一层新的Layer呢?主要分为四步: (1)在./src/caffe/proto/caffe.proto 中增加对应layer的paramter message: (2)在./i ...