1 pair的应用

pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。

2 make_pair函数

template pair make_pair(T1 a, T2 b) { return pair(a, b); }

很明显,我们可以使用pair的构造函数也可以使用make_pair来生成我们需要的pair。 一般make_pair都使用在需要pair做参数的位置,可以直接调用make_pair生成pair对象很方便,代码也很清晰。 另一个使用的方面就是pair可以接受隐式的类型转换,这样可以获得更高的灵活度。灵活度也带来了一些问题如:

std::pair(1, 1.1);

std::make_pair(1, 1.1);

是不同的,第一个就是float,而第2个会自己匹配成double。

类模板:template struct pair

参数:T1是第一个值的数据类型,T2是第二个值的数据类型。

功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。

具体用法:

1.定义(构造):

1 pair p1; //使用默认构造函数

2 pair p2(1, 2.4); //用给定值初始化

3 pair p3(p2); //拷贝构造函数

2.访问两个元素(通过first和second):

1 pair p1; //使用默认构造函数

2 p1.first = 1;

3 p1.second = 2.5;

4 cout << p1.first << ' ' << p1.second << endl;

输出结果:1 2.5

3.赋值operator = :

(1)利用make_pair:

1 pair p1;

2 p1 = make_pair(1, 1.2);

(2)变量间赋值:

pair p1(1, 1.2);

pair p2 = p1;

Pair类型概述

pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:

pair a;

表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。

pair a("James", "Joy");

也可以像上面一样在定义的时候直接对其初始化。

由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:

typedef pair author;

author pro("May", "Lily");

author joye("James", "Joyce");

Pair对象的操作

对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员

pair a("Lily", "Poly");

string name;

name = pair.second;

生成新的pair对象

可以使用make_pair对已存在的两个数据构造一个新的pair类型:

int a = 8;

string m = "James";

pair newone;

newone = make_pair(a, m);

STL pair 常见用法详解

学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...

20140315 模板类pair的用法 2、visual 2010调整代码格式是ctrl&plus;k&plus;

1.模板类pair的用法 包含头文件#include   http://blog.csdn.net/laixingjun/article/details/9005200 ...

【STL】-pair的用法

初始化: std::pair p; //initialize p.first and p.second with zero std::pair

【CodeForces-1041C】Coffee Break(二分解决关于set&comma;pair&comma;upper&lowbar;bound用法)

//题意:一个的工作时间是m分钟. // 在特定的时间和咖啡 n a1,a2....an,, ai代表的是每个咖啡要在一天中对应的时间点喝掉 // 每一次喝咖啡的时间为1分钟 // 必须在一天中的ai ...

C&plus;&plus; std&colon;&colon;map&colon;&colon;erase用法及其陷阱

1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map mapTest; typedef map

std&colon;&colon;shared&lowbar;ptr 和 std&colon;&colon;weak&lowbar;ptr的用法以及引用计数的循环引用问题

在std::shared_ptr被引入之前,C++标准库中实现的用于管理资源的智能指针只有std::auto_ptr一个而已.std::auto_ptr的作用非常有限,因为它存在被管理资源的所有权转移 ...

pair常见用法

pair的使用 关于pair 什么是pair 可以将pair看做一个内部有两个元素的结构体,且两个元素的类型是可以指定的. struct pair{ typename1 first; typename ...

STL——容器(Set &amp&semi; multiset) insert 的返回值 和 pair 的用法

1. 使用 insert 插入时的返回值: 将一个元素插入 (insert) 到 set 或 multiset 中时,如果插入失败返回的类型是一个 pair 的自定类型,insert 源码如下: in ...

随机推荐

今天思考一个问题,PHP const和static的区别

static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心 ...

ASP------如何读取文件内容

一名Delphi程序员的开发习惯

一名Delphi程序员的开发习惯 有关开发习惯的一些想法,如鲠在喉,不吐不快.究其发贴动机,当然不排除有骗取参与分的可能,但另一方面,也希望能给同行(念Xing)者提供一些 建议,或者参考(希望不是误 ...

正确的理解this 和 super

this和super是Java的两个关键字. 先明确一个问题,有人错误的认为它们是对象里的“属性”,这只能怪老师没有讲清楚计算机的本质了.因为计算机的处理器只能用指令去处理数据,像C语言之类的容易理解 ...

Bootstrap学习之路(2)---导航组件

在bootstrap中,导航条的样式都依赖于.nav类,而样式又分为多种,如: 标签页的样式为:.nav-tabs

  • ...

Apache 编译安装

# wget http://www.apache.org/dist/httpd/httpd-2.2.9.tar.gz  (此处我是直接用的下载好的包) # tar -zxvf httpd-2.2.9. ...

WindowsService的调试方法

本人转载:http://www.cnblogs.com/xiebin1986/archive/2011/12/15/2288893.html 调试WindowsService,以前用过一个附加到进程的 ...

SGU 190&period;Dominoes&lpar;二分图匹配&rpar;

时间限制:0.25s 空间限制:4M 题意: 给定一个N*N的棋盘,一些格子被移除,在棋盘上放置一些1*2的骨牌,判定能否放满,并且输出任意方案. Solution: 首先考虑对棋盘的一个格子黑白染色 ...

ALAsset和ALAssetRepresentation

ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小 ...

C&num;&lowbar;Test

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Plus ...

c语言pair的用法,C++ std::pair的用法相关推荐

  1. std::tuple、std::tie(可用于结构体大小比较)、std::pair用法

    1.tuple应用: 解释:是一个元组,可包含无限多不同类型变量,pair的升级版,但没有pair得成员变量first.second. 1.1.代码: // tuple example #includ ...

  2. C++中标准模板库std::pair的实现

    以下用C++实现了标准模板库中的std::pair实现,参考了 cplusplus 和 vs2013中的utility文件. 关于std::pair的介绍和用法可以参考: https://blog.c ...

  3. C++ std::pair

    重点总结: pair将2个数据组合成一组数据,std::map中的元素就是pair. 通过 first 和 sencond 访问pair中数据:pair.first; air.second; 可使用 ...

  4. C++ std::pair的用法

    1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数需要返回2个数据的时候, ...

  5. std::pair std::tuple std::tie

    std::pair 固定包含两个数据,Defined in header <utility> 场景 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的m ...

  6. Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试

    Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试 实现功能 C++实现代码 实现功能 容器std::pair与宏BOOST_TEST_EQ相关的测试 C++实现代码 #inc ...

  7. C++学习笔记-----std::pair作为unordered_map的key

    使用pair作为unordered_map的key时会提示这样的错误: The C++ Standard doesn't provide a hash for this type. 意思是C++标准中 ...

  8. matlab向量相减代码,matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量等内容)...

    MATLAB部分: xmap = repmat( linspace( -regionW/2, regionW/2, regionW), regionH, 1 );%linspace [x1,x2,N] ...

  9. C++学习(四八三)无法从“std::pair<const _Kty,_Ty>”转换为“_Objty”

    使用vs2017编译osgEarth2.9的FeatureSourceIndexNode.cpp遇到的 使用VS2017编译osgEarth2.7过程中遇到问题总结_justslowdown_goin ...

最新文章

  1. 大数据高效复制的处理案例分析总结
  2. js 运算符 || 妙用
  3. Android 图片加载框架Coil使用总结
  4. boost::sort模块实现spreadsort 双排序示例
  5. Spring中任务调度cronExpression配置说明
  6. Python 编程问题集
  7. 准备一些万圣节的乐趣——UI设计素材模板
  8. 15.三数之和-LeetCode
  9. Github客户端下载以及使用方法
  10. CodeBook算法
  11. 引用 八卦象数疗法--配方2
  12. 2022年中式面点师(中级)复训题库及模拟考试
  13. 2021第一学期学习笔记01
  14. 如何在Java中使用Lambda表达式
  15. Python_4组数据看线性回归的假设检验问题
  16. window10系统onedrive无法登陆 ox8004def7
  17. office2010 word 关闭很慢
  18. 低成本OpenPNP驱动0816飞达
  19. 五子棋 java 课设,五子棋java课程设计
  20. 企业如何选择合适的精益生产方案?

热门文章

  1. 正则的详细讲解(一)
  2. 遗憾的同时期待局座明年能来参加云栖大会!
  3. 如何使用开源项目申请jetbrains激活账号01
  4. IGMP协议 v1-v3版本简介
  5. 如何将Web报表设计器FastReport Online Designer 更新到最新版本?
  6. 我的世界如何快速制作 服务器,《我的世界》颜色代码快速指南
  7. mysql表中的中文是乱码_mysql插入表中的中文显示为乱码或问号的解决方法
  8. python创建变量revenue、并赋值为98765_Python入门笔记_01
  9. 液压安全阀行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. 如何在口袋和Instapaper之间导入文章