c++中pair的用法

一、pair是什么

pair是stl中将两个数据整合成一个数据的模板,类似于只有两个成员变量的结构体变量。一个pair包含两个成员变量first变量和second变量,基本操作都和结构体类似。

二、pair的使用

1、pair的定义

pair<type1,type2> p1;	//创建一个空pair对象,其中的两个元素为type1和type2类型
例:pair<int,double> p1;	//创建空pair对象p1,其中的first和second元素分别是int型和double型

2、pair的赋值

1. 定义时直接初始化一个值
pair<type1,type2> p1(v1,v2);	//创建pair对象p1,其first和second值分别为v1,v2

2.分别赋值
pair<type1,type2> p1;	//创建空pair对象p1
p1.first = v1;		//分别对p1的first和second变量赋值
p1.second = v2;

3、pair的操作

1.p1 < p2;	//两个pair对象间的小于运算,遵循字典序,p1.first < p2.first 或者 !(p1.first < p2.first) && (p1.second < p2.second) 则返回true
2.p1 > p2	//两个pair对象间的大于运算,原理同上
3.p1 == p2	//如果两个对象的first和second依次相等,则这两个对象相等
4.p1.first	//访问first元素
5.p1.second 	//访问second元素

4、pair的排序

使用sort进行排序
1.默认对pair的first进行排序
pair<int,int> p1[n];
sort(p1,p1+n);
//按pair的first升序排序
2.自定义sort函数
pair<int,int> p1[n];

bool cmp(pair<int,int> a,pair<int,int> b)
{
	return a.second > b.second;
}

sort(p1,p1+n,cmp);
//按pair的second降序排序

5、何时使用pair
一般使用两个成员变量的结构体时可直接用pair。
在函数需要返回两个返回值时,使用pair将两个数据合为一个数据。

你可能感兴趣的:(STL)