pair类型 这次遇到了,记录下来,方便彼此xue习
首先,这个pair类型是在头文件utility.h中。
一个piar保存两个数据成员,是用来生成特定类型的模板,当创建一个pair时,我们必须提供两个类型名,pair的数据成员将具有对应的类型,两个类型不要求一样:如下:
pair<string,string> anon;//保存两个string
pair<string,size_t> word_count;//保存一个string和一个size_t;
pair<string,vector<int>> line;//保存string和vector<int>
接下来我们为每个成员提供初始化器:
pair <string,string> author{"jm","joy"};
这条语句创建一个名为author的pair,两个成员被初始化为“jm”和“joy”。下面介绍pair上的操作:
pair<T1,T2> p;
这里p是一个pair型,两个类型分别为T1和T2的成员都进行了初始化。
pair<T1,T2> p(v1,v2);
p是一个成员类型为T1和T2的pair,first和second成员分别用v1和v2进行初始化;
pair<T1,T2>p={v1,v2};这个等价于p(v1,v2);
make_pair(v1,v2);返回一个用v1和v2初始化的pair。pair的类型从v1和v2的类型中推断出来。
p.first;返回p的名为first的公有数据成员
p.second;返回p的名为second的公有数据成员。
p1 relop p2 关系运算符(<,>,<=,>=)按字典序定义,例如,p1.first<p2.first或者!(p2.first<p1.first)&&p1.second<p2.second成立时
,p1<p2为true。关系运算符利用元素的<运算符来实现。
p1 == p2 ,p1!=p2,当first和second成员分别相等时,两个pair相等,相等性判断利用元素的==运算符进行实现。
创建pair对象的函数
如果有一个函数需要返回一个pair,在新标准下,我们可以对返回值进行列表初始化,如
pair<string,int>
process(vector<string> &v)
{
if(!v.empty())
return {v.back(),v.back().size()};//列表初始化
else
return pair<string,int>();//隐式构造函数返回值
}
此外还可以使用下面两种方法进行初始化列表返回
if(!v.empty())
return pair<string,int>(v.back(),v.back().size());
还可以用make_pair生成pair对象,
if(!v.empty())
return make_pair(v.bakc(),v.back().size());
谢谢!!
pair类型 这次遇到了,记录下来,方便彼此xue习的更多相关文章
- C++pair类型
标准库类型--pair类型定义在utility头文件中定义 本文地址:http://www.cnblogs.com/archimedes/p/cpp-pair.html,转载请注明源地址. 1.pai ...
- C++ Primer : 第十一章 : 关联容器之概述、有序关联容器关键字要求和pair类型
标准库定义了两种主要的关联容器:map和set map中的元素时一些关键字-值(key-value)对,关键字起到索引的作用,值则表示与索引相关的数据.set中每个元素只包含一个关键字,可以完成高效的 ...
- C++ Primer 学习笔记_34_STL实践与分析(8) --引言、pair类型、关联容器
STL实践与分析 --引言.pair类型.关联容器 引言: 关联容器与顺序容器的本质差别在于:关联容器通过键[key]来存储和读取元素,而顺序容器则通过元素在容器中的位置顺序的存取元素. ma ...
- C++ pair 类型
Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一个元素是int型的 ...
- pair类型
pair是一个模板数据类型,其中包含两个数据值,两个数据值可以不同 如 pair<int,string>a(2,"fgh");则a是一个pair类型,它包括两个数据,第 ...
- STL之pair类型具体分析
pair定义于头文件utility中.基本的作用是将两个数据组合成一个数据,两个数据能够是同一类型或者不同类型. pair类型提供的操作: pair<T1,T2> p1; pair< ...
- C++容器(三):pair类型
pair类型 在开始介绍关联容器之前,我们有必要了解一种与之相关的标准库类型–pair类型. 操作 含义 pair<T1, T2> p1 创建一个空的pair对象,它的两个元素分别为T1和 ...
- STL之pair类型
C++ pair 类型 ---心怀虔诚,细细欣赏! 编程实践: Practice:编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vecto ...
- C#值类型以及默认值记录下
C#的值类型有bool,byte,sbyte,decimal,double,float,int,uint,long,string等 如果我们擅长使用默认值,可以帮助我们减少带来赋值及代码编写. 比如我 ...
随机推荐
- DOM对象之window
window的属性 top:返回当前窗口的最顶层的先辈窗口 document:返回HTML文档对象 location:当前窗口的地址 self:返回对自身窗口的引用 parent:返回父窗口 如何引用 ...
- HDU_4826_dp
Labyrinth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- solaris roles cannot login directly
oracle@solaris:~$ su - root Password: Oracle Corporation SunOS root@solaris:~# cat /etc/user_attr # ...
- Silverlight之我见——DataGrid数据验证
<UserControl x:Class="DataValidationSample.MainPage" xmlns="http://schemas.microso ...
- Problem 34
Problem 34 https://projecteuler.net/problem=34 145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 1 ...
- 《零压力学Python》 之 第二章知识点归纳
第二章(数字)知识点归纳 要生成非常大的数字,最简单的办法是使用幂运算符,它由两个星号( ** )组成. 如: 在Python中,整数是绝对精确的,这意味着不管它多大,加上1后都将得到一个新的值.你将 ...
- 20170622-编译Uboot错误
参照:http://docs.widora.io/zh/uboot编译 Assembler messages:Error: unknown architecture `4kc' Error: unre ...
- 实验十二 团队作业8:软件测试与Alpha冲刺 第四天
项目 内容 这个作业属于哪个课程 老师链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 Always Run! 作业学习目标 (1)掌握软件测试基础技术 (2)学习 ...
- 微信小程序如何引用iconfont图标
最近在研究微信小程序,自己写demo的时候想要引用巴里巴巴图标库的图标,于是: @font-face { font-family: 'iconfont'; src: url('iconfont.eot ...
- linux学习6-简单的文本处理
简单的文本处理 实验介绍 这一节我们将介绍这几个命令tr(注意不是tar),col,join,paste.实际这一节是上一节关于能实现管道操作的命令的延续,所以我们依然将结合管道来熟悉这些命令的使用. ...