「学习笔记」pair
介绍
std::pair
是标准库中定义的一个类模板。用于将两个变量关联在一起,组成一个“对”,而且两个变量的数据类型可以是不同的。——\(\texttt{OI-Wiki}\)
在平时的做题中,你是否遇见过写一个结构体,但结构体里只有两个元素且排序的依据很简单这样的事情?也许写结构体很麻烦,对于它的排序还要再写一个新函数或者重载运算符,这样的情况下,我们可以考虑用 pair
来绑定两个变量
使用
定义:
pair<int, double> a
定义一个 pair
,第一个元素是 int
类型的,第二个元素是 double
类型的,名称为 \(a\)
或者是
make_pair(a, b)
将变量 \(a\) 与 \(b\) 绑定在一起(\(a\) 与 \(b\) 的变量类型要符合 pair
定义时的类型)
访问:
int c = a.first;
double d = a.second;
比较
pair
中已经预先定义了所有的比较运算符,如 \(>, \ge, <, \le, \ne(!=)\),所有的比较运算符,都是先比较第一个元素,再比较第二个元素
应用
- 离散化,把元素大小和序号绑定在一起
- dijkstra 堆优化中省去结构体和比较函数(重载运算符)
朝气蓬勃 后生可畏