• C++STL学习Pair


    类模板:template <class T1, class T2> struct pair


    参数:T1是第一个值的数据类型,T2是第二个值的数据类型。


    功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。


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



    具体用法:


    1.定义(构造):


    pair<int, double> p1;  		//使用默认构造函数
    pair<int, double> p2(1, 2.4);   //用给定值初始化
    pair<int, double> p3(p2);	//拷贝构造函数

    2.访问两个元素(通过first和second):


    pair<int, double> p1;		//使用默认构造函数
    p1.first = 1;
    p1.second = 2.5;
    cout << p1.first << ' ' << p1.second << endl;
    输出结果:1 2.5


    3.赋值operator = :


     

    (1)利用make_pair:

    对已经初始化的进行修改:

    pair<int, double> p1;
    p1 = make_pair(1, 1.2);

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

    int a = 8;
    string m = "James";
    pair<int, string> newone;
    newone = make_pair(a, m);


    (2)变量间赋值:

    pair<int, double> p1(1, 1.2);
    pair<int, double> p2 = p1;

    4.简化使用

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

    #include<bits/stdc++.h>
    using namespace std;
    
    typedef pair<string, string> PSS;    
    typedef pair<int, int> PII;
    typedef pair<string, int> PSI;
    PSS name("first", "second");
    PII point(1, 2);
    PSI associative("str", 123);
    
    int main()
    {
       cout << name.first << " " << name.second << endl;
       cout << point.first << " " << point.second << endl;
       cout << associative.first << " " << associative.second << endl;
       return 0;
    }
    








  • 相关阅读:
    vscode识别预览markdown文件
    工具:静态资源服务器server
    vscode配置easy sass 生成压缩和未压缩的css文件
    cocos Create简单记录
    小程序AR云识别
    小程序被冻结 解冻方法
    vscode设置px转换为rem
    js 打印文本
    .net 启动进程并执行某方法
    c# 创建文件夹、压缩成zip格式并下载
  • 原文地址:https://www.cnblogs.com/lzq1126/p/5596852.html
Copyright © 2020-2023  润新知