pair类型

在开始介绍关联容器之前,我们有必要了解一种与之相关的标准库类型–pair类型。

操作 含义
pair<T1, T2> p1 创建一个空的pair对象,它的两个元素分别为T1T2类型,采用值初始化
pair<T1, T2> p1(v1, v2) 创建一个pair对象,它的两个元素分别是T1T2类型,其中first成员初始化为v1second成员初始化为v2
make_pair(v1,v2) v1v2创建一个新的pair对象,其元素类型分别是v1v2的类型
p1 < p2 两个pair对象之间的小于运算,其定义遵循字典顺序:如果p1.first < p2.first或者!(p2.first < p1.first) && p1.second < p2.second,则返回true
p1 == p2 如果两个pair对象的firstsecond成员依次相等,则两个对象相等,返回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类型相关推荐

  1. Asp.net支持三种类型的cache[转]

    from:http://www.cnblogs.com/thomasnet/archive/2006/11/26/573104.html Asp.net支持三种类型的cache 想写一个技术快速概述, ...

  2. STL之序列式容器(三)、vector容器

    一.vector的使用.创建及初始化 vector<T> 容器是包含 T 类型元素的序列容器,和 array<T,N> 容器相似,不同的是 vector<T> 容器 ...

  3. Effective STL 为包含指针的关联容器指定比较类型

    // 为包含指针的关联容器指定比较类型.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include <set> #inclu ...

  4. C++_volatile限定修饰符 Pair类型

    Volatile限定修饰符 =========================================================== 当一个对象的值可能会在编译器的控制或检测之外被改变时 ...

  5. java中三种转string的方法_java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

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

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

  7. html5中标签分为,HTML标签的三种类型

    HTML标签的类型分为三种:行内元素,行内块元素,块级元素 而标签的属性是可以转换的 display:inline: 转换为行内元素 display:linline-block 转换为行内块元素 di ...

  8. java中有scoreframe类型嘛_java构造函数的三种类型总结

    我们说构造函数能处理参数的问题,但其实也要分三种情况进行讨论.目前有三种类型:无参.有参和默认.根据不同的参数情况,需要我们分别进行构造函数的讨论.这里重点是无参构造函数的初始化也要分两种方法进行分析 ...

  9. mysql varchar,bigint,char三种类型性能的比较

    mysql varchar,bigint,char三种类型性能的比较 比较数据类型的性能好坏,数据表必须有足够的数据,我用25万条数据做测试 字段是手机号,用这三个类型哪个类型好呢.首先分析手机号有1 ...

最新文章

  1. 腾讯“科学探索奖”提名报名正式启动
  2. .NET CORE迁移踩坑
  3. SMB文件共享及用户权限使用配置
  4. let const —— ES6基础总结(二)
  5. python中module的意思_python中module的意思
  6. 让你的PHP4和PHP5共存
  7. 商标45类分类表明细表_2019版注册商标分类表,商标注册45类范围明细
  8. Java EE业务处理流程与XML的引入
  9. Hadoop序列化与Java序列化
  10. python3 在线加密_Python3对称加密算法AES、DES3实例详解
  11. 21-python-time,random模块的应用
  12. Unity使用陀螺仪检测屏幕方向
  13. 海思开发板实用技巧集
  14. 2023年PHP常见中高面试题汇总(持续更新)
  15. 流程图+BPMN+脑图 JointJS++ 3.6.3 Crack
  16. 信息工程计算机应用技术专业介绍,信息工程系举行2019级新生计算机应用技术专业介绍会...
  17. finally关键字
  18. 没钱去巴西? 谷歌地图街景带你游览比赛场馆
  19. 除了加班、掉头发,程序员还在承受些什么?
  20. IR Cut Filter主要作用分别是什么?_什么是钻石的4C?

热门文章

  1. [Winform]Media Player组件全屏播放的设置
  2. WPF 快速制作可拖拽的对象和窗体
  3. GameByro渲染系统剖析
  4. vs2019怎么调整字体大小_考研倒计时23天,答题卡怎么使用?来看看正确的使用方法吧!...
  5. 智能合约遇到的三个大坑
  6. 使用Toast进行用户提醒(转)
  7. 24.下拉列表的交互事件
  8. Nginx PHP支持
  9. SQL server 数据库——T-SQL语句基础
  10. Unity UI和引用的管理中心