一、pair介绍:
pair 是 C++ STL 里的模板类 ,作用就是:把两个不同 / 相同类型的值打包成一个整体 ,相当于一个简易的二元结构体。
- 功能:存储一对值(两个值)
- 两个成员:
first:第一个值second:第二个值
pair<类型1, 类型2> 变量名;类型1和类型2的数据类型可以不一样,如下:
pair<int, string> p; // 一个 int + 一个 string
pair<int, int> p; // 两个 int
二、创建 pair 的 4 种方法
1. 空构造
pair<int, string> p;
2. 直接赋值
pair<int, string> p(100, "小明");
3. 用 make_pair 函数(最常用)
auto p = make_pair(200, "小红");
4. C++11 花括号
pair<int, string> p = {300, "小刚"};
三、访问元素
用 .first 和 .second 直接访问:
pair<int, string> p(100, "小明");
cout << p.first; // 输出 100
cout << p.second; // 输出 小明
四、用法:排序是优先根据.first的大小来排序,如果.first的大小一样,才会去比较.second的大小
可执行代码:
cpp
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+10;
vector<pair<int,int> > a;
int main(){
a.push_back(make_pair(3,2));
a.push_back(make_pair(1,4));
a.push_back(make_pair(2,9));
cout<<"排序前:"<<endl;
for(int i=0;i<3;i++){
cout<<a[i].first<<" "<<a[i].second<<endl;
}
cout<<endl<<"排序后:"<<endl;
sort(a.begin(),a.end());
for(int i=0;i<3;i++){
cout<<a[i].first<<" "<<a[i].second<<endl;
}
}
运行结果:
