C++ unordered_multimap key_eq 函数

17 Mar 2025 | 4 分钟阅读

在本文中,您将学习 C++ 中 unordered_multimap key_eq 函数的语法和示例。

什么是 unordered_multimap key_eq 函数?

在 C++ 语言中,unordered_multimap 是一种允许具有相同键的多个元素的容器。在此函数中,允许重复键。key_eq 成员函数是 unordered_multimap 类的一部分,它提供了一种访问与容器关联的键相等比较对象的方法。

此函数将返回一个 布尔 值。它具有与 == 相同的功能。如果两个键相同,则该函数将返回 true。否则,它返回 false。此函数通常由 unordered_multimap 内部使用,以执行涉及键比较的操作。

语法

它具有以下语法:

此函数将接受两个强制参数,arg1arg2

这两个参数进行比较并返回布尔值。

示例 1

让我们举一个例子来说明 C++ 中的 key_eq 函数

输出

unordered_multimap key_eq function in C++

说明

我们将逐步讨论该程序

  1. 首先,文件中的头文件是 iostreamunordered_map。我们都知道 iostream 用于输入和输出处理。同时,包含 unordered_map 以使用 unordered_map 容器,该容器允许使用多个键。
  2. 程序中有四个变量:taskMap,它是我们在程序中使用的 unordered_multimap 的名称;keyEqual 用于存储从 taskMap.key_eq() 获取的键相等比较对象,priority1 和 priority2 代表两个不同的优先级级别。它们用于测试键相等性。
  3. 当调用 key_eq() 时,它返回键相等比较对象 (keyEqual)。之后,此对象比较优先级(priority1priority2)的相等性。其重要性在于它允许自定义键的比较方式。

示例 2

让我们举一个例子来说明 C++ 中的 key_eq 函数。

输出

unordered_multimap key_eq function in C++

说明

  • 此程序使用 TaskManager 模拟任务管理系统。任务存储在 unordered_multimap 中,允许具有相同优先级的多个任务。该程序演示了添加任务、打印任务以及检查两个优先级是否相等。
  • 使用的变量是 "tasks",它是一个 unordered_multimap,"priority1""priority2",代表用于测试的不同优先级级别。
  • 程序中使用的函数有 addTask(),它将具有指定优先级的任务添加到任务多重映射中,printTasks() 用于打印所有任务及其优先级,arePrioritiesEqual() 用于比较任务多重映射中两个优先级级别是否相等。
  • arePrioritiesEqual 函数使用 key_eq() 函数从任务多重映射中获取键相等比较对象。然后,它使用此对象比较两个优先级级别(priority1 和 priority2)的相等性。其重要性在于可以灵活地自定义 unordered_multimap 中键的比较方式。如果需要自定义比较逻辑,可以在自定义 key_equal 函数对象中实现,并在声明 unordered_multimap 时将其传递给它。