c语言pair的用法,C++ std::pair的用法
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+k+
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,pair,upper_bound用法)
//题意:一个的工作时间是m分钟. // 在特定的时间和咖啡 n a1,a2....an,, ai代表的是每个咖啡要在一天中对应的时间点喝掉 // 每一次喝咖啡的时间为1分钟 // 必须在一天中的ai ...
C++ std::map::erase用法及其陷阱
1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map mapTest; typedef map
std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
在std::shared_ptr被引入之前,C++标准库中实现的用于管理资源的智能指针只有std::auto_ptr一个而已.std::auto_ptr的作用非常有限,因为它存在被管理资源的所有权转移 ...
pair常见用法
pair的使用 关于pair 什么是pair 可以将pair看做一个内部有两个元素的结构体,且两个元素的类型是可以指定的. struct pair{ typename1 first; typename ...
STL——容器(Set &; 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.Dominoes(二分图匹配)
时间限制:0.25s 空间限制:4M 题意: 给定一个N*N的棋盘,一些格子被移除,在棋盘上放置一些1*2的骨牌,判定能否放满,并且输出任意方案. Solution: 首先考虑对棋盘的一个格子黑白染色 ...
ALAsset和ALAssetRepresentation
ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小 ...
C#_Test
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Plus ...
c语言pair的用法,C++ std::pair的用法相关推荐
- std::tuple、std::tie(可用于结构体大小比较)、std::pair用法
1.tuple应用: 解释:是一个元组,可包含无限多不同类型变量,pair的升级版,但没有pair得成员变量first.second. 1.1.代码: // tuple example #includ ...
- C++中标准模板库std::pair的实现
以下用C++实现了标准模板库中的std::pair实现,参考了 cplusplus 和 vs2013中的utility文件. 关于std::pair的介绍和用法可以参考: https://blog.c ...
- C++ std::pair
重点总结: pair将2个数据组合成一组数据,std::map中的元素就是pair. 通过 first 和 sencond 访问pair中数据:pair.first; air.second; 可使用 ...
- C++ std::pair的用法
1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数需要返回2个数据的时候, ...
- std::pair std::tuple std::tie
std::pair 固定包含两个数据,Defined in header <utility> 场景 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的m ...
- Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试
Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试 实现功能 C++实现代码 实现功能 容器std::pair与宏BOOST_TEST_EQ相关的测试 C++实现代码 #inc ...
- C++学习笔记-----std::pair作为unordered_map的key
使用pair作为unordered_map的key时会提示这样的错误: The C++ Standard doesn't provide a hash for this type. 意思是C++标准中 ...
- matlab向量相减代码,matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量等内容)...
MATLAB部分: xmap = repmat( linspace( -regionW/2, regionW/2, regionW), regionH, 1 );%linspace [x1,x2,N] ...
- C++学习(四八三)无法从“std::pair<const _Kty,_Ty>”转换为“_Objty”
使用vs2017编译osgEarth2.9的FeatureSourceIndexNode.cpp遇到的 使用VS2017编译osgEarth2.7过程中遇到问题总结_justslowdown_goin ...
最新文章
- 大数据高效复制的处理案例分析总结
- js 运算符 || 妙用
- Android 图片加载框架Coil使用总结
- boost::sort模块实现spreadsort 双排序示例
- Spring中任务调度cronExpression配置说明
- Python 编程问题集
- 准备一些万圣节的乐趣——UI设计素材模板
- 15.三数之和-LeetCode
- Github客户端下载以及使用方法
- CodeBook算法
- 引用 八卦象数疗法--配方2
- 2022年中式面点师(中级)复训题库及模拟考试
- 2021第一学期学习笔记01
- 如何在Java中使用Lambda表达式
- Python_4组数据看线性回归的假设检验问题
- window10系统onedrive无法登陆 ox8004def7
- office2010 word 关闭很慢
- 低成本OpenPNP驱动0816飞达
- 五子棋 java 课设,五子棋java课程设计
- 企业如何选择合适的精益生产方案?
热门文章
- 正则的详细讲解(一)
- 遗憾的同时期待局座明年能来参加云栖大会!
- 如何使用开源项目申请jetbrains激活账号01
- IGMP协议 v1-v3版本简介
- 如何将Web报表设计器FastReport Online Designer 更新到最新版本?
- 我的世界如何快速制作 服务器,《我的世界》颜色代码快速指南
- mysql表中的中文是乱码_mysql插入表中的中文显示为乱码或问号的解决方法
- python创建变量revenue、并赋值为98765_Python入门笔记_01
- 液压安全阀行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 如何在口袋和Instapaper之间导入文章