C++ UNORDERED_MAP28 Aug 2024 | 5 分钟阅读 无序映射 (unordered map) 是一种关联容器,它存储由键值和映射值融合而成的元素。元素由其键值唯一标识,映射值是与键相关联的内容。键和值都可以是任何已建立的或用户定义的类型。无序映射可以被认为是字典类型的数据结构,它将元素存储在自身中。它持有的顺序对(键,值)可以通过其单个键快速检索特定元素。 提供给映射的键被哈希到哈希表的索引中,这就是为什么数据结构的速度很大程度上取决于哈希函数,但平均而言,从哈希表中进行搜索、插入和删除的成本是 o(1)。 在最坏的情况下,特别是对于大的素数整数,其时间复杂度可以从o(1)到o(n)。在这种情况下,强烈建议使用 map 以避免出现 tle (时间限制超出)问题。 语法示例输出 Distribute 40 Regular 30 Javatpoint 20 说明 此输出特别证明了无序映射的输出值是按随机键到值的方式生成的,而映射则以有序方式显示值和键。 无序集合与无序映射无序集合和无序映射之间的一些区别如下: 无序映射
无序集合
重要提示 例如,考虑计算单个单词频率的问题。由于计数不能存储在无序集合(或集合)中,我们必须使用无序映射。 映射与无序映射映射和无序映射之间的一些区别如下: 无序映射
Map
无序映射的过程有许多函数可以与无序映射一起使用。最有用的是:
无序映射的所有方法如下所示: At() 这个 C++ 无序映射方法返回对以指定元素作为键 k的值的引用。 Begin() 它提供一个返回值,该返回值是一个迭代器,指向无序映射容器中的第一个条目。 End() 无序映射容器桶返回一个迭代器,指向最后一个元素之后的位置 ()。 Bucket() 它返回映射的桶计数中放置键 k 的元素的桶号。 Bucket_count() 无序映射的桶总数使用桶计数函数统计。它可以不带任何参数调用。 Bucket size 它给出无序映射计数中每个桶 ()的元素计数。 Count() 它给出无序映射计数中每个桶 ()的元素计数,应计算无序映射中具有指定键相等范围的元素数量。 Equal_range() 它返回包含容器所有项目和与k比较的键的范围的边界。 Find() 给出指向元素空值的迭代器。 Position () 它确定无序映射容器的容器是否为空。 Erase() 可以使用erase()函数删除无序映射容器中的元素。 尽管 C++11 库也提供了用于查看内部桶大小、桶计数、使用的哈希函数和各种哈希策略的函数,但它们在实际应用中用处不大。使用迭代器,我们可以遍历无序映射中的每个元素。 示例输出 Retrieved the value of pi Lambda value cannot retrieved The entire elements : E 2.718 The value ofloge 1 The value oflog10 2.302 The value of root2 1.414 The value ofroot3 1.732 The value of pi 3.14 Two 2 Three 3 One 1 示例输出 (programs, 1) (learn, 1) (questions, 1) (t, 1) (points, 1) (java, 1) 下一个主题C++ 初学者书籍 |
Splay 树是一种二叉搜索树。它有一个独特的特性,即它们会根据最近的访问历史动态地改变其结构。这种能力使它们在某些操作方面特别有效,其中一种操作是插入节点。在本……
5 分钟阅读
在本文中,您将了解 C++ 中的 flat_map 及其示例。什么是 flat_map?一种称为 flat_map 的数据结构结合了 vector 和 map 的特征。本质上,它是一个有序的关联容器,它存储键值对,其中...
5 分钟阅读
在本教程中,我们将学习如何确定两个浮点数的余数。示例:输入:a = 9.7, b = 2.3 输出:0.5 输入:a = 36.5, b = 5.0 输出:1.5 C 程序:#include <stdio.h> #include <math.h> int main() { int x = 10; int...
阅读1分钟
Edmonds-Karp 算法是查找流网络中最大流的一种强大而有效的方法。流网络是一个有向图,其中每条边都有一个容量,表示其可承载的最大流量。该算法建立在 Ford-Fulkerson 方法的基础上,但...
11 分钟阅读
简介:您可以使用动态规划来查找键入给定字符串所需的最少按键次数。思路是构建一个表,其中每个条目 dp[i][j] 代表键入子字符串 s[i..j] 所需的最少按键次数。表格...
14 分钟阅读
C++ 中 new 和 delete 运算符的区别 在 C++ 编程语言中,new 和 delete 运算符主要用于动态内存分配和去分配。它们使我们能够动态地分配和释放内存,这意味着我们可以创建大小的... 对象
阅读 6 分钟
C++ 程序通过数学方式操作 valarray 元素,展示了 C++ 标准库的 valarray 容器以及可对其元素执行的各种算术运算。这是该程序的基础理论:Std::valarray: Std::valarray 是一个容器类,来自...
阅读 3 分钟
这个 C++ 食品店管理系统项目包含客户和产品搜索、显示、修改和删除等功能。此程序在允许用户提交订单前,会搜索文件中存储的客户信息。该软件专为小型...
阅读 19 分钟
排序算法简介 在数据为王的计算机科学领域,排序技能至关重要。作为数字世界的无名英雄,排序算法在后台默默地将混乱转化为秩序。它们对于计算机科学的许多方面都至关重要,...
阅读 10 分钟
在不断发展的金融和投资领域,算法问题求解起着至关重要的作用。在交易员和投资者遇到的挑战中,股票跨度问题(Stock Span Problem)脱颖而出,它要求根据给定的一系列股票价格来计算股票跨度。这篇博文旨在...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India