C++中pair使用的示例代码

 更新时间:2025年02月26日 15:03:39   作者:黎明之时  
本文主要介绍了C++中pair使用的示例代码,用于存储两个不同类型的元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、pair的介绍

  pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素,又不想因此定义结构体时,使用pair可以很方便地作为一个替代品。

  也就是说,pair实际上可以看作一个内部有两个元素的结构体,且这两个元素的类型是可以指定的,如下:

struct pair
{
    typeName1 first;
    typeName2 second;
};

二、pair的定义

  要使用pair,应先添加头文件#include<utility>,并在头文件下面加上"using namespace std",然后就可以使用了。

   注意:由于map的内部实现中涉及pair,因此添加map头文件时会自动添加utility头文件,此时如果需要使用pair,就不需要额外再去添加utility头文件了。

//pair有两个参数,分别对应first和second的数据类型,他们可以是任意基本数据类型或容器。
pair<typeName1,typeName2>name;
//想要定义参数为string和int类型的pair,如下:
pair<string,int>p;
//如果想在定义pair时进行初始化,只需要跟上一个小括号,里面填写两个想要初始化的元素即可;
pair<string,int>p("haha",5);
//如果想要在代码中临时构建一个pair,有如下两种方法:
/*
    (1)将类型定义写在前面,后面用小括号内两个元素的方式。
*/
pair<string,int>("haha",5);
/*
    (2)使用自带的make_pair函数
*/
make_pair("haha",5);

三、pair中元素的访问

pair中只有两个元素,分别是firstsecond,只需要按正常结构体的方式去访问即可

#include<bits/stdc++.h>
using namespace std;

int main()
{
    pair<string,int>p;
    p.first="haha";
    p.second=5;
    cout<<p.first<<" "<<p.second<<endl;
    p=make_pair("xixi",55);
    cout<<p.first<<" "<<p.second<<endl;
    p=pair<string,int>("heihei",555);
    cout<<p.first<<" "<<p.second<<endl;
}

四、pair常用函数实例解析

(1)比较函数

两个pair类型数据可以直接使用关系运算符比较大小,
比较规则是先以first的大小作为标准,只有first相等采取判断second的大小

#include<bits/stdc++.h>
using namespace std;

int main()
{
    pair<int,int>p1(5,10);
    pair<int,int>p2(5,15);
    pair<int,int>p3(10,5);
    if(p1<p3)
        printf("p1<p3\n");
    if(p1<=p3)
        printf("p1<=p3\n");
    if(p1<p2)
        printf("p1<p2\n");
    return 0;
}

pair的常见用途

关于pair有两个比较常见的例子:

  (1)用来代替二元结构体及其构造函数,可以节省编码空间

  (2)作为map的键值对来进行插入,如下

#include<bits/stdc++.h>
using namespace std;

int main()
{
    map<string,int>mp;
    mp.insert(make_pair("hah",5));
    mp.insert(pair<string,int>("heihei",10));
    for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
        cout<<it->first<<" "<<it->second<<endl;
    return 0;
}

到此这篇关于C++中pair使用的示例代码的文章就介绍到这了,更多相关C++ pair使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C++ boost scoped_ptr智能指针详解

    C++ boost scoped_ptr智能指针详解

    智能指针是一种像指针的C++对象,但它能够在对象不使用的时候自己销毁掉。虽然STL提供了auto_ptr,但是由于不能同容器一起使用(不支持拷贝和赋值操作),因此很少有人使用。它是Boost各组件中,应用最为广泛的一个
    2022-11-11
  • 浅谈C++的几种从键盘输入方式

    浅谈C++的几种从键盘输入方式

    今天小编就为大家分享一篇浅谈C++的几种从键盘输入方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • C++类的静态成员初始化详细讲解

    C++类的静态成员初始化详细讲解

    通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化
    2013-09-09
  • 利用Matlab复刻扫雷小游戏

    利用Matlab复刻扫雷小游戏

    windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本程序参考《扫雷》的规则进行了简化,用Matlab实现,感兴趣的小伙伴可以学习一下
    2022-03-03
  • VC判断一个文件为目录的方法

    VC判断一个文件为目录的方法

    这篇文章主要介绍了VC判断一个文件为目录的方法,在Windows应用程序设计中非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C语言中使用lex统计文本文件字符数

    C语言中使用lex统计文本文件字符数

    这篇文章主要介绍了C语言中使用lex统计文本文件字符数,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • C++实现基于静态数组的顺序表

    C++实现基于静态数组的顺序表

    这篇文章主要介绍了C++实现基于静态数组的顺序表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C语言memset函数详解

    C语言memset函数详解

    这篇文章主要介绍了C语言中的memset()函数,包括其与memcpy()函数的区别,需要的朋友可以参考下,希望能够给你带来帮助
    2021-09-09
  • C语言如何写类实现教程示例

    C语言如何写类实现教程示例

    这篇文章主要为大家介绍了C语言如何写类的实现教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • C++ min/max_element 函数用法详解

    C++ min/max_element 函数用法详解

    这篇文章主要介绍了C++ min/max_element 函数用法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论