C++学习之Pair

一、Pair类型概述

pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:

pair<int, string> a;

表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。

pair<string, string> a("James", "Joy");

也可以像上面一样在定义的时候直接对其初始化。

由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:

1 typedef pair<string, string> author;
2 author pro("May", "Lily");
3 author joye("James", "Joyce");

 

Pair对象的操作

1、对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员

1 pair<string, string> a("Lily", "Poly"); 
2 string name;
3 name = pair.second;

 

2、生成新的pair对象

可以使用make_pair对已存在的两个数据构造一个新的pair类型:

1 int a = 8;
2 string m = "James";
3 pair<int, string> newone;
4 newone = make_pair(a, m);

三、编程实践

练习:编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vector容器

 1 #include<iostream>
 2 #include<stdlib.h>
 3 #include<string>
 4 #include<vector>
 5 #include<utility>
 6 using namespace std;
 7 
 8 int main()
 9 {
10   pair<string, int>p;
11   typedef vector< pair<string, int> > VP;
12   VP vp;
13   while(cin>>p.first>>p.second)
14   {
15     vp.push_back(make_pair(p.first,p.second));
16 
17   }
18   VP::iterator it;
19   for(it=vp.begin(); it!=vp.end(); it++)
20     cout<<it->first<<","<<it->second<<endl;
21 
22     system("pause");
23   return 0;
24 }

运行结果:

原文地址:https://www.cnblogs.com/yxh-amysear/p/8275024.html