首先比较first元素,若相等则比较second元素,按字典序确定结果。例如p1={1,3}与p2={1,5}比较时,因first相等,故比较second,得出p1

在C++中,pair 类型的比较是内置支持的,可以直接使用关系运算符(如 , >=, ==, !=)进行比较。这种比较遵循字典序(lexicographical order)规则:先比较第一个元素,如果相等再比较第二个元素。
pair 比较的基本规则
两个 std::pair 对象 a 和 b 的比较逻辑如下:
- 首先比较 a.first 和 b.first
- 如果 a.first != b.first,则结果由 first 元素决定
- 如果 a.first == b.first,则继续比较 a.second 和 b.second
例如:
pairpair
cout
支持的比较操作
C++ 标准库为 pair 提供了以下比较运算符的重载:
立即学习“C++免费学习笔记(深入)”;
- ==:当且仅当两个 pair 的 first 和 second 都相等时为 true
- !=:只要 first 或 second 不相等就为 true
- :按字典序比较,常用于排序和 map 的键比较
- , >=:基于
示例代码:
#include#include
using namespace std;
int main() {
pair
pair
pair
cout cout cout return 0;
}
自定义类型 pair 的比较条件
要使 pair 可比较,其内部类型必须支持相应的比较操作:
- 如果用
- 如果用 == 比较,则需要支持 == 操作
- 常见类型如 int、double、string、vector 等都已重载这些操作符
自定义结构体需手动重载比较运算符才能用于 pair 比较。例如:
struct Point {int x, y;
bool operator return x }
};
pair
pair
cout
基本上就这些。pair 的比较机制简洁高效,广泛应用于 STL 容器(如 map、set)中作为键值对的默认排序依据。只要元素类型可比较,pair 就能自动支持字典序比较。








