一、Pair 类型概述
pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:
1. pari<T1 , T2> p1
pari<T1 , T2> p1; //创建一个空的pair对象,它的两个元素分别是T1 和T2类型,采用直初始化
2. pair<T1, T2> P1(V1 , V2)
pair<T1, T2> P1(V1 , V2); //创建一个pair对象,它的两个元素分别是T1 和T2类型,其中first成员初始化为v1,而second 成员初始化为v2
3.make_pair(v1 , v2)
make_pair(v1 , v2); //以v1和v2值创建一个新的pair对象,其元素类型分别是T1 和T2类型
4. p.first 和 p.second
p.first 返回p中名为first 的(公有)数据成员
p.second 返回p的名为second的(公有)数据成员
5. 定义多个形同pair类型 ,简化声明
typedef pair<string, string> author;
author pro("May", "Lily");
author joye("James", "Joyce");
二、Pair对象的操作
1.定义(构造)
pair<int, double> p1; //使用默认构造函数 pair<int, double> p2(3, 3.3); //用给定值初始化 pair<int, double> p3(p2); //拷贝构造函数
1.pair类只有两个元素,分别名为first和second,因此可以使用普通的点操作符即可访问其成员
pair<string, string> a("Lily", "Poly");
string name;
name = pair.second;
例如:通过first和second访问两个元素
pair<int, double> p1; //使用默认构造函数 p1.first = 3; p1.second = 3.3; cout << p1.first << ' ' << p1.second << endl;
输出结果:3 3.3
2.生成新的pair对象
2.1 利用make_pair
可以使用make_pair对已经存在的两个数据构造出一个新的pair类型:
int a = 1;
string m = "hello";
pair<int, string> newone;
newone = make_pair(m, n);
pair<int, double> p1; p1 = make_pair(1, 1.2);
2.2 变量之间赋值
pair<int, double> p1(3, 3.3); pair<int, double> p2 = p1;