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 中只有两个元素,分别是 first 和 second ,只需要按正常结构体的方式去访问即可。

#include <iostream>
#include <utility>
#include <string>
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;return 0;
}

 

四、pair 常用函数实例解析

(1)比较操作数

两个 pair 类型数据可以直接使用 ==,!=,<,<=,>,>= 比较大小,比较规则是先以 first 的大小作为标准,只有当 first 相等时才去判别 second 的大小。

#include <cstdio>
#include <utility>
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 <iostream>
#include <string>
#include <map>
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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1381007.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Solidity实现默克尔树 Merkle Tree

​​Merkle Tree​​​&#xff0c;也叫默克尔树或哈希树&#xff0c;是区块链的底层加密技术&#xff0c;被BTC和Ethereum区块链广泛采用。​​Merkle Tree​​​是一种自下而上构建的加密树&#xff0c;每个叶子是对应数据的哈希&#xff0c;而每个非叶子为它的​​2​​个子…

论文浅尝 | PairRE: 通过成对的关系向量实现知识图谱嵌入

笔记整理&#xff1a;黎洲波&#xff0c;浙江大学硕士&#xff0c;研究方向为自然语言处理、知识图谱。 研究背景 知识图谱因其在问答、语义解析和命名实体消歧等任务取得了良好的效果而受到广泛关注&#xff0c;而大部分知识图谱都存在不全和缺失实体链接的问题&#xff0c;所…

致敬乔布斯的经典,锤子坚果Pro成2017年最受欢迎手机看罗永浩怎么说

锤子坚果Pro发布已经近2个月&#xff0c;但热度依旧不减。在刚刚过去的京东618活动中&#xff0c;坚果Pro在1500到2000元档位产品中一举斩获单品销量冠军。坚果Pro凭借出色的销售战绩坐实2017手机圈“黑马”之名&#xff0c;而其销量节节攀升&#xff0c;这其中必有一番原因。日…

坚果Pro 2安抚了不少人锤粉, 但用户更期待锤子T3

今年秋季&#xff0c;锤子科技创始人罗永浩于2017年11月7日在成都发布坚果系列2代手机坚果Pro 2&#xff0c;指纹和logo的融合增强了手机的一体型。软件上的再度优化&#xff0c;帮助盲人更注重人文关怀&#xff0c;再从罗永浩自带“流量”&#xff0c;坚果Pro2自然而然受到大家…

pro坚果android耗流量,深度使用坚果Pro3一个月,憋了一肚子话,不吐不快​

原标题&#xff1a;深度使用坚果Pro3一个月&#xff0c;憋了一肚子话&#xff0c;不吐不快​ 罗永浩创办的锤子手机曾经在国内手机市场&#xff0c;也是一枚耀眼的新兴&#xff0c;罗永浩对于手机工业设计的高标准严要求让锤子手机成为了国内少有的在设计上能和苹果三星比肩的手…

厉害了!原来这些文艺明星都喜欢锤子坚果Pro

最近在手机圈出现了一匹黑马&#xff0c;那就是锤子坚果Pro。在京东618期间取得了十分骄人的战果&#xff0c;荣获6月1日至18日1500-1999元价位档单品销量第一&#xff0c;成为该价格区间最受欢迎的手机&#xff0c;同时在2017年4月1日后首发的新品销量排名中位列第三&#xff…

锤子t1android驱动,锤子T1痛失安卓5.1!都是因为这?

现如今很多高端手机都开始升级安卓6.0了&#xff0c;但是情怀锤子却突然给了老用户一“锤子”&#xff0c;宣布第一代T1将不会升级到安卓5.1&#xff0c;因为“优化效果不明显”。 这顿时引发了一片争议。有的T1用户表示了理解&#xff0c;称手机够用就好&#xff0c;不在乎系统…

内蒙古大学计算机考研资料汇总

内蒙古大学研招网 内蒙古大学计算机学院 内蒙古大学计算机学院成立于1997年&#xff0c;其前身是1978年设置的计算机专业和1988年成立的计算机科学系。内蒙古大学软件学院成立于2005年&#xff0c;与计算机学院为一个实体&#xff0c;两个牌子。目前学院由计算机科学系、…

如何获取bainu文档并用斡仑office进行编码转换-永中office蒙文版

声明&#xff1a; 1.bainu软件是由内蒙古卓嘎信息技术有限公司研发的。 2.斡仑office是由内蒙古斡仑科技有限公司与永中软件股份有限公司联合开发的蒙汉多文种跨平台办公套装。 第一&#xff0c;首先我们打开bainu软件&#xff0c;如图&#xff1a; 第二&#xff0c;下列图中…

为什么 Mixin 被认为是有害的

为什么 Mixin 被认为是有害的 Mixin 是在 Vue 2 中引入的&#xff0c;作为组件之间共享代码的解决方案&#xff0c;这种方式成为许多代码库不可或缺的一部分。然而&#xff0c;随着时间的推移&#xff0c;它们的使用开始出现问题。尽管 mixins 最初很有吸引力&#xff0c;但现…

【从零开始学习JAVA | 第四十五篇】反射

目录 前言&#xff1a; ​反射&#xff1a; 使用反射的步骤&#xff1a; 1.获取阶段&#xff1a; 2.使用阶段&#xff1a; 反射的应用场景&#xff1a; 使用反射的优缺点&#xff1a; 总结&#xff1a; 前言&#xff1a; Java中的反射是一项强大而灵活的功能&#xff0…

1688采源宝的商家靠谱吗 怎么入驻成为阿里采源宝商家

说到采源宝&#xff0c;我想很多微商都是不陌生的&#xff0c;采源宝的主要作用就是方便微商查看并转发供应商所发布的商品&#xff0c;并在有客户下单时&#xff0c;还可以轻松向供货商去下单。但也有很多朋友对采源宝的商家靠谱吗这个问题存在很大疑惑&#xff0c;下面我们就…

开发nft数字藏品平台合法合规吗?

开发nft数字产品平台合法合规吗&#xff1f;这是很多人都在问的问题&#xff0c;那么今天就来给大家说说。 开发nft数字产品平台可以肯定的是合法合规。 其实很多人对国内国外的玩法不太了解&#xff0c;有很多人对数字产品法律和政策不太清楚。首先&#xff0c;我们要了解国内…

最近发现一款拍卖转拍,玩家互动挑选自己想要的拍品,转拍获利,还可以提货的源码,一款购物和赚钱的不二选择

拍卖转拍,玩家互动挑选自己想要的拍品,转拍获利,还可以提货,一款购物和赚钱的不二选择操作步骤打开拍卖首页 根据时间点击进入指定的场次选作品&#xff0c; 等待到时间准备抢拍, 抢完之后可以查看卖家的收款码, 确认打款之后可以上传支付截图 然后可以等待卖家确认收货, …

1688按图搜索商品(拍立淘)获取数据的教程

onebound.1688.item_search_img 获取key和secret API文档说明 完整返回数据 "items": { "real_total_results": 80, "error": "", "item": [ { "title"…

基于java SSM框架的竞拍系统拍卖网设计

今天给大家介绍一个竞拍网的设计与实现。 本项目主要实现的功能是为广大的消费者群体与商家之间提供网络交易的平台&#xff0c;实现该平台的创建需要实现一系列的功能。 商品信息发布的功能&#xff0c;商家发布自己产品的相关信息&#xff1b;注册登录功能&#xff0c;游客通…

Java基于ssm开发的古董竞标拍卖系统也可以改成拍卖品网站

简介 古董展品拍卖网站 用户可以注册成为买家也可以申请开店成为卖家&#xff0c;发布古董展品&#xff0c;设置拍卖起止时间进行展品的拍卖。如果早于拍卖开始时间或者晚于拍卖结束时间&#xff0c;则不可以竞拍。多人竞拍&#xff0c;买家可以根据最高价设置谁中标&#xff…

星球日报|Conflux支持 阿里上线国内最大数字藏品交易撮合平台

转载自Odaily星球日报 近日&#xff0c;阿里拍卖在淘宝 APP 首屏重要入口位置上线了一大批第三方公链以及平台支持的数字藏品店铺&#xff0c;以供用户进行拍卖交易。除由公链 Conflux 支持的数字藏品外&#xff0c;阿里拍卖同时存在由国产联盟链“知信链”和“新版链”技术支持…

带有反爬虫机制下进行爬取数据方案,这里以阿里拍卖为例

介绍 最近接到一个2万多的小项目,需求是这样的。需要将一个大型网站上的数据爬下来保存到本地。具体项目不方便透漏,这里的演示就以阿里拍卖网站为例。 反爬虫机制有那些? 解决反爬虫之前,我们首先得了解反爬虫机制。 ip限制反爬虫:免登录反爬虫一般用访问ip来判断你是…

SSM框架在线拍卖系统项目

文章目录 前言一、项目设计具体任务和要求二、数据库设计三、页面效果及功能展示1. 拍卖系统登录页面2.拍卖系统注册页面3.拍卖系统登录后主页面4.拍卖系统游客浏览拍卖商品页面5.拍卖系统用户添加拍卖商品页面6.拍卖系统用户查看个人上传商品页面7.拍卖系统用户删除个人商品页…