【问题标题】:I'm intrested in finding the time complexity of a map with two keys我有兴趣找到具有两个键的地图的时间复杂度
【发布时间】:2021-01-12 11:34:45
【问题描述】:

我正在尝试将矩阵的整个元素转换为哈希图。为此我尝试使用map<pair<int,int>,int>mp;

其中 pair 是数组索引,值是矩阵元素中的值。 所以我尝试了这种方式 mp[{i,j}]=value;

它工作正常,但我感兴趣的是找到时间复杂度。一般来说,如果有和 n 个键映射到一个值,时间复杂度是多少以及如何。

【问题讨论】:

标签: c++ hashmap time-complexity


【解决方案1】:

澄清一下,C++ 中的 ma​​p 容器是基于树的结构。您提到使用哈希图。 unordered_map 是 C++ 中基于散列的容器。

至于 unordered_map (https://en.cppreference.com/w/cpp/container/unordered_map):

无序映射是一个包含键值对的关联容器 与唯一键配对。搜索、插入和删除元素 具有平均恒定时间复杂度。

【讨论】:

  • 我得到了关于 map 和 unordered_map 的澄清,但在上面提到的链接中,我没有得到任何关于带有两个键或一般 n 个键的 hashmap 的信息
  • @Doddigirish 如果 2 个键需要按顺序表示法进行 2 次比较,则 O(n) + O(n)2O(n),即 O(n)。将实际的 Order 和键数代入上面。
  • @Doddigirish 如果您的意思是如何使用一对作为密钥,例如,您需要为您的密钥类型提供哈希函数。请看看这个:link
猜你喜欢
  • 2016-12-24
  • 2018-12-05
  • 1970-01-01
  • 2021-10-07
  • 2020-04-21
  • 2020-10-05
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
相关资源
最近更新 更多