std::pair用法

std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。
例如std::pair<int,float> 或者 std::pair<double,double>等。
pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。
初始化一个pair可以使用构造函数,也可以使用std::make_pair函数。

std::make_pair用法

make_pair函数的定义如下
template pair make_pair(T1 a, T2 b) { return pair(a, b); }
一般make_pair都使用在需要pair做参数的位置,可以直接调用make_pair生成pair对象。
另一个使用的方面就是pair可以接受隐式的类型转换,这样可以获得更高的灵活度。但是这样会出现如下问题:
例如有如下两个定义:
std::pair<int, float>(1, 1.1);
std::make_pair(1, 1.1);
其中第一个的second变量是float类型,而make_pair函数会将second变量都转换成double类型。

#include <iostream>
using namespace std;int main(int argc, char** argv)
{pair <string,double> product1 ("tomatoes",3.25);pair <string,double> product2;pair <string,double> product3;product2.first ="lightbulbs"; // type of first is stringproduct2.second =0.99; // type of second is doubleproduct3 = make_pair ("shoes",20.0);cout <<"The price of "<< product1.first <<" is $"<< product1.second <<"\n";cout <<"The price of "<< product2.first <<" is $"<< product2.second <<"\n";cout <<"The price of "<< product3.first <<" is $"<< product3.second <<"\n";return 0;
}

转载自:https://blog.csdn.net/hiwoshixiaoyu/article/details/53894162

C++基础——C++ make_pair用法相关推荐

  1. python类装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  2. boost::hana::make_pair用法的测试程序

    boost::hana::make_pair用法的测试程序 实现功能 C++实现代码 实现功能 boost::hana::make_pair用法的测试程序 C++实现代码 #include <b ...

  3. python装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  4. arduino: 各种Arduino基础器件的用法图

    arduino: 各种Arduino基础器件的用法图 2013-06-17 13:29:40 分类: LINUX NE555的各种用法 开关.光耦.光敏电阻等的用法 各种LED的用法 蜂鸣器.继电器. ...

  5. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

  6. Mongodb基础命令与用法

    Mongodb基础命令与用法 查看版本号 [root@VM_0_12_centos bin]# ./mongo -version MongoDB shell version v3.6.5 git ve ...

  7. Fabric.js 基础画笔的用法 BaseBrush

    theme: smartblue 本文简介 点赞 + 关注 + 收藏 = 学会了 本文介绍 Fabric.js 的基础笔刷用法.如果你还不知道 Fabric.js 是什么,我墙裂建议你阅读一下 < ...

  8. pyqt5从子目录加载qrc文件_PyQt5快速上手基础篇10-QSettings用法

    前言 本节我们学习使用PyQt5的QSettings的用法,使用QSettings可以记住用户操作UI界面设置的参数,下次打开软件的时候,会直接加载用户上一次设置的参数. 一.基础知识 1.QSett ...

  9. python基础函数及用法意思_Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...

最新文章

  1. SQL Server 2012 复制(发布订阅的研究)
  2. AppSwiper让iphone5快速关闭后台应用
  3. Codeforces 补题记录
  4. 【2012百度之星/初赛上】C:集合的交与并
  5. 视频播放器的极致体验优化
  6. 跟着刚哥梳理java知识点——多线程(十六)
  7. 新浪微博之XSS蠕虫脚本源码讲解
  8. 解决maven打jar包报错:Could not resolve substitution to a value: ${akka.stream.materializer}
  9. html换浏览器div的位置固定不变,浏览器窗口更改时,HTML div不在适当的位置
  10. Java Jar 包反编译
  11. 一个很好的网址,Visio 使用教程
  12. 计算机网络谢希仁第八版 课后答案第七版课后答案
  13. sqlserver while 用法
  14. 编制现金流量表3个步骤!
  15. Microsoft Visio 文本框上标或下标
  16. NDIS函数大全手册
  17. Win10彻底删除Windows.old文件夹
  18. 学习Python要学习哪些课程?
  19. 无法启动MySQL服务,提示“错误1069,由于登录失败而无法启动服务”
  20. 计算机教程五年级,五年级~上册全册计算机教学教程南方出版社.doc

热门文章

  1. mysql的while循环_MySQL学习笔记:while循环
  2. 用户注册与单点登录(SSO)
  3. 基于6G的联邦学习部署和应用
  4. Idea2020 创建web项目
  5. 如何通过eclipse导入web项目
  6. 12.6pygame游戏开发框架(6):绘制文字
  7. 夺命雷公狗ThinkPHP项目之----商城10商品属性管理
  8. c++编程练习 043:冷血格斗场
  9. Redis(含Redis安装,CMD命令,使用Redis编程,缓存预热,计划任务)
  10. Web应用服务器——Tomcat