一、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将两个数据合为一个数据。
…