• C++容器(三):pair类型


    pair类型

    在开始介绍关联容器之前,我们有必要了解一种与之相关的标准库类型–pair类型。

    操作 含义
    pair<T1, T2> p1 创建一个空的pair对象,它的两个元素分别为T1T2类型,采用值初始化
    pair<T1, T2> p1(v1, v2) 创建一个pair对象,它的两个元素分别是T1T2类型,其中first成员初始化为v1second成员初始化为v2
    make_pair(v1,v2) v1v2创建一个新的pair对象,其元素类型分别是v1v2的类型
    p1 < p2 两个pair对象之间的小于运算,其定义遵循字典顺序:如果p1.first < p2.first或者!(p2.first < p1.first) && p1.second < p2.second,则返回true
    p1 == p2 如果两个pair对象的firstsecond成员依次相等,则两个对象相等,返回true
    p.first 返回p中名为first的(公有)数据成员
    p.second 返回p中名为second的(公有)数据成员

    pair类型包含两个数据值,与容器一样,pair也是一种模板类型。在创建pair对象时,必须提供两个类型名:pair对象所包含的两个数据成员各自对应的类型名字,这两个类型名字不必相同:

    pair<string, string> strs;   // holds two string
    pair<string, int> wordCount; // holds a string and an int
    pair<string, vector<int>> line; // holds a string and a vector<int>

    如果在创建pair对象时不提供初始化式,则调用默认构造函数对其成员采用值初始化。当然,也可以定义时提供初始化式:

    pair<string, string> author("James", "Joyce");
    
    // or use typedef 
    typedef pair<string, string> Author;
    Author author("Marcel", "Joyce");

    生成新的pair对象,除了上述的利用构造函数方法外,标准库中定义的make_pair函数,由传递给它的两个实参生成一个新的pair对象:

    pair<string, string> nextAuthor;
    string first, second;
    while( cin >> first >> second)
    {
        // generate a pair from first and last
        nextAuthor = make_pair( first, second );
        // process nextAuthor ...
    }
    
    // or
    nextAuthor = pair<string, string>(first, second);
    
    // or
    cin >> nextAuthor.first >> nextAuthor.second;

    参考文献:

    • 《C++ Primer中文版(第四版)》,Stanley B.Lippman et al. 著, 人民邮电出版社,2013。
  • 相关阅读:
    vijos1746 floyd
    总结
    用javascript代码拼html
    异步编程学习
    SELECT
    设计 Azure SQL 数据库,并使用 C# 和 ADO.NET 进行连接
    H2数据库
    ASP.NET 文档
    ASP.NET MVC
    ASP.NET Core 中的 Razor 页面介绍
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6332238.html
Copyright © 2020-2023  润新知