1.pair的声明与初始化 *pair型数组*
pair<T1, T2> p1; //创建一个空的pair对象(
pair<T1, T2> p1(v1, v2); //其中first成员初始化为v1,second成员初始化为v2。
p1=make_pair(v1, v2); // 以v1和v2的值创建一个新的pair对象,其元素类型分别是v1和v2的类型。
p1 < p2; // 两个pair对象间的小于运算,其定义遵循字典次序,优先排first,first不满足排second,返回bool
p1 == p2; // 如果两个对象的first和second都相等
p1.first; // 返回对象p1中名为first的公有数据成员
p1.second; // 返回对象p1中名为second的公有数据成员
//数组
pair<int,int> a[10];
a[0]=make_pair("one",1); //使用make_pair
a[1]=pair<int,int>("tow",2);//使用对象说明
typedef pair<string,string> Author; //使用typedef简化声明
2. 排序
用sort()排序,默认按照first的值排序。
如何实现按照second排序
#include<bits/stdc++.h>
using namespace std;
bool cmp(pair<int, int>a, pair<int, int> b)
{
return a.second < b.second;
}
//根据second的值升序排序
int main()
{
pair<int,int> a[10];
a[1]=make_pair(1,1);
a[0]=pair<int,int>(1,2);
sort(a,a+2,cmp) ;
cout<<a[0].first;
}