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());
谢谢!!
最新文章
- CSU 1597 薛XX后代的IQ
- 64位centos 下编译 hadoop 2.6.0 源码
- Google的Bigtable学习笔记(不保证正确性)
- [resource]23个python的机器学习包
- EntityFrame6在本地可以正常使用,部署到IIS后报异常(Additional information: The underlying provider failed on Open.)
- 使用Sass预定义一些常用的样式,非常方便(转)
- c printf
- 使用OC和swift创建系统自带的刷新界面
- awk 中 FS的用法
- C# 代码规范和质量检查工具 StyleCop.Analyzers
- 小程序view排版
- day84-仿照admin实现一个自定义的增删改查组件
- php使用phpexcel导出文件
- Chunk
- 03_Spark集群部署
- 【BZOJ】1218: [HNOI2003]激光炸弹(前缀和)
- [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系
- idea ssm框架搭建
- SummerVocation_Learning--java的线程机制
- linux下robotframework执行测试用例的几种方法
热门文章
- Python 之糗事百科多线程爬虫案例
- 解决 The file will have its original line endings in your working directory
- 图像处理中创建CDib类时无法选择基类类型时怎么办
- iOS标准库中常用数据结构和算法之查找
- maven常用dos命令
- SolidWorks学习笔记(一)
- Oracle 数据库连接的一些坑
- Error: Registry key &#39;Software\JavaSoft\Java Runtime has value &#39;1.8&#39;, but &#39;1.7&#39; is
- Capture the Flag ZOJ - 3879(模拟题)
- Centos 7中,防火墙配置端口规则