• pair<>结构体模版的用法


      1.pair算是一个结构体模版,定义的时候是这样的:

    pair<T1,T2> P;

    其中T1,T2可以是int,string,double,甚至是vector<>。

    2.进行初始化是这样的:

    pair<int,int> a(12,34);

    也可以借用make_pair()函数:

    pair<int,int> a;
    
    a=make_pair(12,34);

    3.进行调用是很简单的:

    pair<int,int> a(12,34);
    
    printf("%d %d",a.first,a,second);

    4.如果对pair进行排序,进行的是字典序比较。

    pair<int,int> a[100];

    可以用sort(a,a+100)进行排序。

    5.下面有个小程序来展示他的用法。

    (这个程序用于解决贪心法当中的区间调度问题。)

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    
    using namespace std;
    
    const int MAX_N=100000;
    int N,S[MAX_N],T[MAX_N];
    pair<int,int> itv[MAX_N];
    
    void solve(){
        //对pair进行的是字典序比较
        //为了让结束时间早的工作排在前面,把T存入first,把S存入second
        for(int i=0;i<N;i++){
            itv[i].first=T[i];
            itv[i].second=S[i];
        }
        sort(itv,itv+N);
        //t是最后所选工作的结束时间。
        int ans=0,t=0;
        for(int i=0;i<N;i++){
            if(t<itv[i].second){
                ans++;
                t=itv[i].first;
            }
        }
        printf("%d
    ",ans);
    }
    
    
    /*
    本程序用于解决贪心法当中的区间调度问题
    测试数据
    5
    1 2 4 6 8
    3 5 7 9 10
    */
    int main()
    {
        scanf("%d",&N);
        for(int i=0;i<N;i++){
            scanf("%d",&S[i]);
        }
        for(int i=0;i<N;i++){
            scanf("%d",&T[i]);
        }
        solve();
        return 0;
    }
  • 相关阅读:
    判断当前时间为星期几
    springboot+mysql数据源切换
    表单上传图片
    po,vo,bo,dto,dao解释
    生成电脑的SSH key
    单例模式
    事物的特性和隔离级别
    springAOP自定义注解讲解
    Spring依赖注入(DI)的三种方式
    redis持久化
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/5978121.html
Copyright © 2020-2023  润新知