zoukankan      html  css  js  c++  java
  • 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;
    }
    








  • 相关阅读:
    PAIRING WORKFLOW MANAGER 1.0 WITH SHAREPOINT 2013
    Education resources from Microsoft
    upgrade to sql server 2012
    ULSViewer sharepoint 2013 log viewer
    Top 10 Most Valuable Microsoft SharePoint 2010 Books
    讨论 Setsockopt选项
    使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC
    Nagle's algorithm
    Nagle算法 TCP_NODELAY和TCP_CORK
    Design issues Sending small data segments over TCP with Winsock
  • 原文地址:https://www.cnblogs.com/lzq1126/p/5596852.html
Copyright © 2011-2022 走看看