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<>结构体模版的用法的更多相关文章

  1. MATLAB 单元数组 cell 和结构体 struct 的用法以及区别

    1. 前言 Matlab单元数组cell和结构体struct都可以将不同类型的相关数据集成到一个单一的变量中,使得大量的相关数据的处理变得非常简单而且方便.但是,需要注意的是,单元数组和结构体只是承载 ...

  2. C++_系列自学课程_第_12_课_结构体

    #include <iostream> #include <string> using namespace std; struct CDAccount { double bal ...

  3. 瘋子C语言笔记(结构体/共用体/枚举篇)

    (一)结构体类型 1.简介: 例: struct date { int month; int day; int year; }; struct student { int num; char name ...

  4. 认识C中的结构体

    C中结构体是另外一种表示数据形式的方式,结构体中可以表示C中的基本数据形式,如int,double....结构体可以让我们更好的表示数据.下面来看看结构体. 说到结构体首先要了解的是它的申明形式,要申 ...

  5. C语言 Struct 结构体在 Java 中的体现

    大一整个学期完成了 C 语言的学习,大二就进入了Java 的学习. 和C语言一样,我们都会尝试写一个小小的学生管理系统什么的,学习过 C 语言同学知道,在管理系统中 Struct 结构体是个很好用的东 ...

  6. 【阅读笔记】《C程序员 从校园到职场》第七章 指针和结构体

    原文地址:让你提前认识软件开发(13):指针及结构体的使用 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2387299 ...

  7. Go语言规格说明书 之 结构体类型(Struct types)

    go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...

  8. 利用sort对结构体进行排序

    我定义了一个学生类型的结构体来演示sort排序对结构体排序的用法 具体用法看代码 #include<iostream> #include<string> #include< ...

  9. 在Main中定义student的结构体,进行年龄从大到小依次排序录入学生信息。(结构体的用法以及冒泡排序)

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

随机推荐

  1. 浏览器内核与js引擎

    摘要: 面试一个大公司的时候问到了一个问题,让我谈谈主要的浏览器内核以及他们的特点,当时并没有详细的回答,回来之后自己在网上找了找资料,总结了下分享给大家. 简介: 在维基百科上是这样介绍浏览器内核的 ...

  2. 编写更好的C#代码

    引言 开发人员总是喜欢就编码规范进行争论,但更重要的是如何能够在项目中自始至终地遵循编码规范,以保证项目代码的一致性.并且团队中的所有人都需要明确编码规范所起到的作用.在这篇文章中,我会介绍一些在我多 ...

  3. JUnit之持续集成(CI,Continuous Integration)

    序,测试驱动开发告诉我们,要尽早测试,经常测试.如果我们进行一点小改动时,都把所有的单元测试.集成测试和功能测试执行一遍,这就会非常浪费时间.为了避免这一点,在开发期间我们只执行单元测试,那么集成测试 ...

  4. [译]我是怎么构建Node.js程序的

    原文: http://blog.ragingflame.co.za/2015/4/1/how-i-build-nodejs-applications "保持简单, 保持模块化." ...

  5. OFFICE文档(DOC,XLS,PPT)打开报错的解决办法!

    一般情况下,打开OFFICE文档报错都是因为模板文件出错!! 至于为什么会出错这个问题不好说,可能是不正确关闭文档等等,重装OFFICE也不一定能解决问题! 出现这种情况一般是所有的Word文档或者E ...

  6. mybatis 多个dao重名,根据namespace解析

    在mybatis通过执行sql语句的方式是,用getSqlSession().xxx(param,..)方法来调用, 其中第一个参数就是dao mapper.xml文件的命名空间.id package ...

  7. loadrunner-27796错误寻求解决办法

    Action.c(58): Error -27796: Failed to connect to server "www.baidu.com:80": [10048] Addres ...

  8. Windows下几个常用的和进程有关的命令

    在windows下,进入cmd,有几个常用的和进程有关的命令: netstat -ano:查看所有进程 netstat -ano|findstr  “端口号”:查看端口号对应的进程PID taskli ...

  9. Javascript高级程序设计——BOM(浏览器对象模型)

    BOM(浏览器对象模型),它提供了独立于内容而与浏览器窗口进行交互的对象.BOM由一系列相关的对象构成.一.window对象      window对象表示整个浏览器窗口,但不必表示其中包含的内容.W ...

  10. Codeforces 260 B. Fedya and Maths

    题目链接:http://codeforces.com/contest/456/problem/B 解题报告:输入一个n,让你判断(1n + 2n + 3n + 4n) mod 5的结果是多少?注意n的 ...