一、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