Loading

「学习笔记」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 堆优化中省去结构体和比较函数(重载运算符)
posted @ 2023-03-01 22:46  yi_fan0305  阅读(27)  评论(0编辑  收藏  举报