C++ Unordered_Mutimap2024 年 8 月 29 日 | 4 分钟阅读 关联容器是无序多重映射(unordered multimap)。它存储键值对的方式与无序映射类似。另一方面,多重映射允许重复值,而无序映射不允许。这些是无序容器,因此在存储内容时没有顺序。不过,允许重复项,因此具有相同键的内容会聚集在同一个桶中。对于重复键,每个键值对都有一个唯一的计数器值。 无序多重映射的内部哈希算法决定了其时间复杂度,它将键值对存储在哈希表中。任何操作平均需要常量时间,最坏情况下需要线性时间。 语法C++ STL 中 unordered_multimap 的语法如下。 示例让我们举一个例子来说明 C++ 中 unordered_multimap 函数的使用。 输出 Unordered multimap contains: apple = 3 apple = 4 banana = 2 cherry = 5 date = 1 无序多重映射的方法以下是一些常用的 unordered_multimap 函数列表 begin() - 它返回一个指向容器或其某个桶的第一个元素的迭代器。 end() - 它提供一个迭代器,指向容器或其某个桶的最后一个元素之后的位置。 count() - 它返回容器中其键与参数键对应的项目数。 cbegin() - 它返回一个常量迭代器,指向容器或其某个桶的第一个元素。 cend() - 它提供一个常量迭代器,指向容器或其某个桶的最后一个元素之后的位置。 clear() - 它清除无序多重映射容器的内容。 size() - 它返回无序多重映射的大小。它显示容器内物品的数量。 swap() - 它交换两个无序多重映射容器的内容。这两个容器可以有不同的大小。 find() - 它返回一个指向键 k 的条目的迭代器;bucket size() - 返回桶 n 中的元素数量。 find() - 如果无序多重映射容器为空,此函数返回 true。否则返回 false。 函数 max size() 返回无序多重映射容器能够容纳的最大项目数量。 emplace() - 它向无序多重映射容器添加一个新的键元素。 示例在下面的示例中,使用了其中一些技术。 输出 Initial unordered multimap: apple = 5 banana = 3 banana = 4 cherry = 8 cherry = 6 date = 2 Size of the unordered multimap is 6 Key banana is there in the unordered multimap Value associated with banana is 3 Number of values with banana are 2 After insertion: apple = 5 banana = 3 banana = 4 cherry = 8 cherry = 6 date = 2 date = 6 fig = 7 grape = 9 After deletion of apple: banana = 3 banana = 4 cherry = 8 cherry = 6 date = 2 date = 6 fig = 7 grape = 9 unordered multimap is empty 时间复杂度 根据所使用的内部哈希算法,无序多重映射上的所有操作通常需要相同的时间。在最坏的情况下,时间可以线性增长。但多重映射(基于树的多重映射)不如无序多重映射。 通常情况下,线性,即 O(n)。 在最坏情况下,O(n^2),即二次方。 |
使用 C++ 中的 accumulate,我们可以高效地查找数组的总和 () 数组是一个线性数据结构,包含内存连续流中的相同数据类型元素。数组中所有元素的总和称为数组总和。C++ 中有几种方法……
阅读 3 分钟
编程中的基本思想之一是弄清楚给定的数字是奇数还是偶数。对于许多算法和应用程序,它充当了基础。编写一个 C++ 程序来确定一个数字是奇数还是偶数将……
阅读 6 分钟
数值分析的一个重要部分是在预定范围内查找连续函数根的过程。在这种情况下,二分法提供了一种查找根的简单方法,有时也称为区间缩小法、二分查找法或二分法...。
阅读 4 分钟
排序是计算机科学中的一项基本操作,并在 QuickSort 中得到了充分体现。Quicksort 是一种分而治之的算法,以其效率而闻名。将 QuickSort 扩展到链表是一项有用的技能,尽管它通常应用于数组。在本文中,我们将深入探讨...
5 分钟阅读
在浩瀚的 C++ 编程领域,标准模板库 (STL) 是一个包含强大功能的通用工具箱。该工具包中的一个亮点是 unordered_multimap 容器,它提供了一种动态管理键值对集合的方式。什么是 unordered_multimap?在开始之前...
阅读 6 分钟
数组是存储在内存中相邻的相关数据片段的集合。通过索引号检索每个数据片段的最基本数据结构。将数组的项按升序排列...
阅读 4 分钟
A 是一个决策流程图,它遵循从根节点开始并以叶节点结束的顺序。这里的叶节点代表我们希望通过决策实现的输出。它直接受到二叉树的启发……
阅读 3 分钟
在 C++ 中,名为 unordered_multimap 的关联容器包含由键和映射值组成的元素。虽然它支持具有相同键的许多组件,但它与 unordered_map 相似。使用 unordered_multimap 的主要好处是它允许公司...
阅读 4 分钟
它们在 C++ 的 strtoimax() 和 strtoumax() 函数的运行方式相同,不同之处在于它们用于将宽字符串 (wstring) 的数据转换为给定基数的整数。此函数定义在头文件 cinttypes 中。头文件...
阅读 3 分钟
在 C++ 的世界里,高效的内存管理至关重要,因为构建健壮且高性能的应用程序取决于最佳的资源利用。这项工作的核心在于 std::allocator 类,它是动态内存分配的基础元素。在本文中,我们将踏上一次旅程...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India