C++容器(三):pair类型
pair类型
在开始介绍关联容器之前,我们有必要了解一种与之相关的标准库类型–pair
类型。
操作 | 含义 |
---|---|
pair<T1, T2> p1
|
创建一个空的pair 对象,它的两个元素分别为T1 和T2 类型,采用值初始化
|
pair<T1, T2> p1(v1, v2)
|
创建一个pair 对象,它的两个元素分别是T1 和T2 类型,其中first 成员初始化为v1 ,second 成员初始化为v2
|
make_pair(v1,v2)
|
以v1 和v2 创建一个新的pair 对象,其元素类型分别是v1 和v2 的类型
|
p1 < p2
|
两个pair 对象之间的小于运算,其定义遵循字典顺序:如果p1.first < p2.first 或者!(p2.first < p1.first) && p1.second < p2.second ,则返回true
|
p1 == p2
|
如果两个pair 对象的first 和second 成员依次相等,则两个对象相等,返回true
|
p.first
|
返回p 中名为first 的(公有)数据成员
|
p.second
|
返回p 中名为second 的(公有)数据成员
|
pair
类型包含两个数据值,与容器一样,pair
也是一种模板类型。在创建pair
对象时,必须提供两个类型名:pair
对象所包含的两个数据成员各自对应的类型名字,这两个类型名字不必相同:
pair<string, string> strs; // holds two string
pair<string, int> wordCount; // holds a string and an int
pair<string, vector<int>> line; // holds a string and a vector<int>
如果在创建pair
对象时不提供初始化式,则调用默认构造函数对其成员采用值初始化。当然,也可以定义时提供初始化式:
pair<string, string> author("James", "Joyce");// or use typedef
typedef pair<string, string> Author;
Author author("Marcel", "Joyce");
生成新的pair
对象,除了上述的利用构造函数方法外,标准库中定义的make_pair
函数,由传递给它的两个实参生成一个新的pair
对象:
pair<string, string> nextAuthor;
string first, second;
while( cin >> first >> second)
{// generate a pair from first and lastnextAuthor = make_pair( first, second );// process nextAuthor ...
}// or
nextAuthor = pair<string, string>(first, second);// or
cin >> nextAuthor.first >> nextAuthor.second;
参考文献:
- 《C++ Primer中文版(第四版)》,Stanley B.Lippman et al. 著, 人民邮电出版社,2013。
转载于:https://www.cnblogs.com/hehehaha/p/6332238.html
C++容器(三):pair类型相关推荐
- Asp.net支持三种类型的cache[转]
from:http://www.cnblogs.com/thomasnet/archive/2006/11/26/573104.html Asp.net支持三种类型的cache 想写一个技术快速概述, ...
- STL之序列式容器(三)、vector容器
一.vector的使用.创建及初始化 vector<T> 容器是包含 T 类型元素的序列容器,和 array<T,N> 容器相似,不同的是 vector<T> 容器 ...
- Effective STL 为包含指针的关联容器指定比较类型
// 为包含指针的关联容器指定比较类型.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include <set> #inclu ...
- C++_volatile限定修饰符 Pair类型
Volatile限定修饰符 =========================================================== 当一个对象的值可能会在编译器的控制或检测之外被改变时 ...
- java中三种转string的方法_java中int,char,string三种类型的相互转换
如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...
- Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试
Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试 实现功能 C++实现代码 实现功能 容器std::pair与宏BOOST_TEST_EQ相关的测试 C++实现代码 #inc ...
- html5中标签分为,HTML标签的三种类型
HTML标签的类型分为三种:行内元素,行内块元素,块级元素 而标签的属性是可以转换的 display:inline: 转换为行内元素 display:linline-block 转换为行内块元素 di ...
- java中有scoreframe类型嘛_java构造函数的三种类型总结
我们说构造函数能处理参数的问题,但其实也要分三种情况进行讨论.目前有三种类型:无参.有参和默认.根据不同的参数情况,需要我们分别进行构造函数的讨论.这里重点是无参构造函数的初始化也要分两种方法进行分析 ...
- mysql varchar,bigint,char三种类型性能的比较
mysql varchar,bigint,char三种类型性能的比较 比较数据类型的性能好坏,数据表必须有足够的数据,我用25万条数据做测试 字段是手机号,用这三个类型哪个类型好呢.首先分析手机号有1 ...
最新文章
- 腾讯“科学探索奖”提名报名正式启动
- .NET CORE迁移踩坑
- SMB文件共享及用户权限使用配置
- let const —— ES6基础总结(二)
- python中module的意思_python中module的意思
- 让你的PHP4和PHP5共存
- 商标45类分类表明细表_2019版注册商标分类表,商标注册45类范围明细
- Java EE业务处理流程与XML的引入
- Hadoop序列化与Java序列化
- python3 在线加密_Python3对称加密算法AES、DES3实例详解
- 21-python-time,random模块的应用
- Unity使用陀螺仪检测屏幕方向
- 海思开发板实用技巧集
- 2023年PHP常见中高面试题汇总(持续更新)
- 流程图+BPMN+脑图 JointJS++ 3.6.3 Crack
- 信息工程计算机应用技术专业介绍,信息工程系举行2019级新生计算机应用技术专业介绍会...
- finally关键字
- 没钱去巴西? 谷歌地图街景带你游览比赛场馆
- 除了加班、掉头发,程序员还在承受些什么?
- IR Cut Filter主要作用分别是什么?_什么是钻石的4C?