一、Pair类型概述
pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:
1
|
pair< int , string> a; |
表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。
1
|
pair<string, string> a( "James" , "Joy" ); |
也可以像上面一样在定义的时候直接对其初始化。
由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的时候,可以时候typedef简化声明:
1
2
3
|
typedef pair<string, string> author; author pro( "May" , "Lily" ); author joye( "James" , "Joyce" ); |
二、Pair对象的操作
1、对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员
1
2
3
|
pair<string, string> a( "Lily" , "Poly" ); string name; name = pair.second; |
2、生成新的pair对象
可以使用make_pair对已存在的两个数据构造一个新的pair类型:
1
2
3
4
|
int a = 8; string m = "James" ; pair< int , string> newone; newone = make_pair(a, m); |
三、编程实践
练习:编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vector容器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include<iostream> #include<string> #include<vector> #include<utility> using namespace std; int main() { pair<string, int >p; typedef vector< pair<string, int > > VP; VP vp; while (cin>>p.first>>p.second) { vp.push_back(make_pair(p.first,p.second)); } VP::iterator it; for (it=vp.begin(); it!=vp.end(); it++) cout<<it->first<< "," <<it->second<<endl; return 0; } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/oceanlight/article/details/7890537