unordered-map 相关问题

是一个C ++类,它是一个关联容器,存储键值和映射值的组合,允许根据键来快速检索元素。

当为unordered_set / unordered_map调用reserve(new_size)时 - 是否会导致分配新的桶数组?

AFAIU(也许我错了),unordered_set/unordered_map 使用底层数组或向量作为存储桶,每个存储桶中有一个键(或键值)列表。 所以当我们想要更多的桶、更大的数组时

回答 1 投票 0

为什么 unordered_map 和 map 具有相同的性能?

这是我的代码,我的 unordered_map 和 map 的行为相同,并且执行时间相同。我是否遗漏了这些数据结构的某些内容? 更新:我已经根据情况更改了我的代码...

回答 4 投票 0

find_if可以用来在std::map/std::unordered_map中查找键吗?

这是一个简单的程序,包括将一个元素添加到 std::unordered_map 中。但在添加之前,首先检查该密钥是否已经存在,如果存在则不要添加。 我的问题是...

回答 1 投票 0

如何防止共享指针的unordered_map泄漏?

我正在构建一个控制台应用程序,其中仅使用智能指针。我选择只使用智能指针来了解何时使用哪个智能指针。在此应用程序中,我正在尝试...

回答 1 投票 0

使用“map.find()”后,“unordered_map”中的元素被覆盖

我正在使用 mymap.find(key)==mymap.end 来查看 key 是否存在于我的地图中。 即使键不存在,该表达式的值也会返回 true 地图正在从 更改 我正在使用 mymap.find(key)==mymap.end 来查看 key 是否出现在我的地图中。 即使键不存在,该表达式的值也会返回 true 地图正在从 更改为 这种行为背后有原因吗? 这是完整代码 void put(int key, int value) { Node* temp; cout << "\n\nTrynna put " << key << " & " << value; cout << "\nbefore:"; printMap(); if (start == NULL) { // some if else conditions . . . } else if (mymap.find(key) != mymap.end()) { // going into if case even if the key doesn't exist in map cout << "-> case found"; cout << "\nafter:"; printMap(); mymap[key]->data = value; mymap[key]->prev->next = mymap[key]->next; mymap[key]->next->prev = mymap[key]->prev; end->next = mymap[key]; mymap[key]->prev = end; end = mymap[key]; } else { cout << "-> case not found "; if (cap == 0) { mymap.erase(start->key); temp = start; start = start->next; if (start != NULL) start->prev = NULL; delete temp; cap++; } if (start == NULL) { start = end = new Node(key, value); mymap[key] = end; cap--; } else { end->next = new Node(key, value, end); end = end->next; mymap[key] = end; cap--; } } cout << "\nafter:"; printMap(); printData(); } 据我了解您的问题和示例代码,您错误了 map.find(key) 方法的行为。如果 map 中没有给定 key 的条目,则 map.find(key) 的值等于 map.end()。这意味着, if (map.find(key) == map.end()) { // There is no entry with given key in the map // ... } 不过,如果您遇到错误,请提供一些我可以编译和运行的代码。这会有帮助的。

回答 1 投票 0

unordered_map 中用户定义类型的运算符重载()

我正在看这篇文章 C++ unordered_map 使用自定义类类型作为键 我知道我们需要为自定义类型键重新定义相等性和哈希码。 我知道运营商如何过度...

回答 2 投票 0

使用 std::unique_ptr 返回 std::unordered_map 的引用时出错

我想知道为什么编译以下示例代码时会出现此错误: #包括 #包括 一级 { }; 使用 TestUnorderedMap = std::unordered_ma...

回答 1 投票 0

我什么时候需要自定义哈希函数?

我遇到了“C++ 标准不提供此类型的哈希值”。 我正在使用 unordered_map 的嵌套映射,如下所示: std::map> 一个铜...

回答 1 投票 0

为什么我的程序说无序映射中的内存位置超出范围?

我目前正在用 C++ 编写一个控制台程序,该程序构建使用无序映射相互连接的节点和弧的网络/图。该应用程序的目的是演示 &q...

回答 1 投票 0

自己的类型作为unordered_map中的键

我有一个围绕 uint32_t 的包装类: IPv4类 { uint32_t 八位字节_; 民众: 运算符 uint32_t() {返回八位字节;} }; 我还有一个从 IPv4 类继承的结构: 结构路由器ID:p...

回答 1 投票 0

C++11 unordered_set 与 std::owner_less 类似散列

我正在使用外部网络库,它返回一些代表打开的套接字的神奇结构,并且文档说,当将它们插入到 STL 容器中时,应该使用 std::

回答 3 投票 0

我对 std::map 和 std::unordered_map 的理解正确吗?

请考虑以下事项: 在 C++ 中,std::unordered_map 在插入过程中使用哈希函数来确定新插入元素的位置。 但是,std::map 不使用...

回答 1 投票 0

C++ STL:std::unordered set 和 std::unordered_map 哈希如何工作?

我试图了解STL无序集/映射(即哈希映射)如何工作。 我知道初始哈希表大小(即桶数)设置为 8,当更多元素添加到集合中时......

回答 1 投票 0

如何解决unordered_map中整数对的哈希函数错误?

我有以下带有 unordered_map 成员的类,以及为对定义的哈希函数 abc 类 { 民众: unordered_map,int>规则; 未签名

回答 2 投票 0

从非常量到常量对模板参数的隐式转换以及在 C++ 中的 unoredered_map::insert 上调用复制/移动向量

代码 #包括 #包括 #包括 使用命名空间 std; 结构体 Foo { Foo(const int value) : val(值) { 计算<< "Foo(in...

回答 1 投票 0

为什么rehash具有二次复杂度,而operator []在最坏情况下具有线性复杂度?

我知道这个问题,但我的有点不同。 为什么rehash具有二次复杂度,但运算符[](可以调用rehash)在最坏情况下具有线性复杂度? 抱歉,但我不...

回答 1 投票 0

为什么当 unordered_map 由于“预留”而拥有足够的存储桶时,其大小会增加?

考虑这段代码。我为 unordered_map 保留 6 个位置并插入 6 个元素。之后还有7个桶。为什么是这样? max_load_factor 为 1,并且有足够的桶来容纳

回答 2 投票 0

unordered_map:find() 和 count() 哪个更快?

确定 unordered_map 容器是否包含具有指定键的项目的最快方法是什么?

回答 4 投票 0

C++ 中的无序映射未按预期运行

我试图制作的程序采用大小为 n * n 的 n*n 方阵网格,其值在 [1,n2] 范围内。每个整数只出现一次,除了出现两次的数字“a”和一个数字...

回答 1 投票 0

使用 C++ 中的自定义比较器对 <int, string> 对进行排序

我正在尝试在 C++ 中创建一组pair,并使用自定义比较器对其进行有效排序。我的要求是: 主要排序:根据

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.