zoukankan      html  css  js  c++  java
  • pair类型 这次遇到了,记录下来,方便彼此xue习

    首先,这个pair类型是在头文件utility.h中。

    一个piar保存两个数据成员,是用来生成特定类型的模板,当创建一个pair时,我们必须提供两个类型名,pair的数据成员将具有对应的类型,两个类型不要求一样:如下:

    pair<string,string> anon;//保存两个string

    pair<string,size_t> word_count;//保存一个string和一个size_t;

    pair<string,vector<int>> line;//保存string和vector<int>

    接下来我们为每个成员提供初始化器:

    pair <string,string> author{"jm","joy"};

    这条语句创建一个名为author的pair,两个成员被初始化为“jm”和“joy”。下面介绍pair上的操作:

    pair<T1,T2> p;

    这里p是一个pair型,两个类型分别为T1和T2的成员都进行了初始化。

    pair<T1,T2> p(v1,v2);

    p是一个成员类型为T1和T2的pair,first和second成员分别用v1和v2进行初始化;

    pair<T1,T2>p={v1,v2};这个等价于p(v1,v2);

    make_pair(v1,v2);返回一个用v1和v2初始化的pair。pair的类型从v1和v2的类型中推断出来。

    p.first;返回p的名为first的公有数据成员

    p.second;返回p的名为second的公有数据成员。

    p1 relop p2 关系运算符(<,>,<=,>=)按字典序定义,例如,p1.first<p2.first或者!(p2.first<p1.first)&&p1.second<p2.second成立时

    ,p1<p2为true。关系运算符利用元素的<运算符来实现。

    p1 == p2 ,p1!=p2,当first和second成员分别相等时,两个pair相等,相等性判断利用元素的==运算符进行实现。

    创建pair对象的函数

    如果有一个函数需要返回一个pair,在新标准下,我们可以对返回值进行列表初始化,如

    pair<string,int>

    process(vector<string> &v)

    {

    if(!v.empty())

    return {v.back(),v.back().size()};//列表初始化

    else

    return pair<string,int>();//隐式构造函数返回值

    }

    此外还可以使用下面两种方法进行初始化列表返回

    if(!v.empty())

    return pair<string,int>(v.back(),v.back().size());

    还可以用make_pair生成pair对象,

    if(!v.empty())

    return make_pair(v.bakc(),v.back().size());

    谢谢!!

  • 相关阅读:
    hadoop mysql install (5)
    hadoop redis install (4)
    hadoop mongodb install(3)
    hadoop hbase install (2)
    水平交错效果显示图像
    实现推拉效果显示图片
    百叶窗效果显示图像
    以椭圆形显示图像
    图像的放大与缩小
    鼠标拖拽图像
  • 原文地址:https://www.cnblogs.com/NongSi-Net/p/5294533.html
Copyright © 2011-2022 走看看