zoukankan      html  css  js  c++  java
  • STL pair

    STL的<utility>头文件中描述了一个看上去非常简单的模板类pair,用来表示一个二元组或元素对,并提供了按照字典序对元素对进行大小比较的比较运算符模板函数。


    例如,想要定义一个对象表示一个平面坐标点,则可以: 

    pair<double, double> p1; 
    cin >> p1.first >> p1.second; 
    

    pair模板类需要两个参数:首元素的数据类型和尾元素的数据类型。pair模板类对象有两个成员:first和second,分别表示首元素和尾元素。 

    在<utility>中已经定义了pair上的六个比较运算符:<、>、<=、>=、==、!=,其规则是先比较first,first相等时再比较second,这符合大多数应用的逻辑。 
    当然,也可以通过重载这几个运算符来重新指定自己的比较逻辑。 

    除了直接定义一个pair对象外,如果需要即时生成一个pair对象,也可以调用在<utility>中定义的一个模板函数:make_pair。make_pair需要两个参数, 
    分别为元素对的首元素和尾元素。 


    Pair类型概述

    pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:

     

    pair<int, string> a;

    表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。

     

    pair<string, string> a("James", "Joy");

    也可以像上面一样在定义的时候直接对其初始化。

     

    由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:

    typedef pair<string, string> author;

    author pro("May", "Lily");

    author joye("James", "Joyce");

     

     

    Pair对象的操作

     

    • 于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员

    pair<string, string> a("Lily", "Poly"); 

    string name;

    name = pair.second;

    • 生成新的pair对象

    可以使用make_pair对已存在的两个数据构造一个新的pair类型:

    int a = 8;

    string m = "James";

    pair<int, string> newone;

    newone = make_pair(a, m);





  • 相关阅读:
    IP的幻觉
    糟糕的一天
    windows下批量生成文件
    基于Bandersnatch搭建本地pypi源
    vmware vsphere 无法启动故障;
    关于Centos7客户端代理配置
    怎样在交换机判断是否出现环路了呢?
    小小的网络故障
    express for LINUX
    ESXI 7.0 ovf 导出;
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387163.html
Copyright © 2011-2022 走看看