【问题标题】:"multiset" & "multimap" - What's the point?“multiset”和“multimap” - 有什么意义?
【发布时间】:2011-02-20 22:27:36
【问题描述】:

正如问题所述......我不明白multisets / multimaps 的意思。

那么,目的是什么?

【问题讨论】:

    标签: c++ stl containers multimap multiset


    【解决方案1】:

    http://www.cplusplus.com/reference/stl/multimap/

    地图是一种联想 存储形成的元素的容器 通过键值的组合和 映射值,很像 map 容器,但允许不同 元素具有相同的键值。

    这是一种元素可以共享密钥的注册表。你可以想到公司和员工。街道地址是关键,员工是价值。

    【讨论】:

      【解决方案2】:

      这是Wikipedia 所说的关于用途的内容:

      • 在学生注册系统中,学生可以注册 多个班同时,有 可能是每个人的关联 学生注册课程, 其中关键是学生证和 该值是课程 ID。如果一个 学生参加了三门课程, 将有三个协会 包含相同的密钥。
      • 一本书的索引可以报告给定索引的任意数量的参考文献 术语,因此可以编码为 从索引词到任何的多重映射 参考地点的数量

      【讨论】:

      • 你能举个例子吗
      【解决方案3】:

      如果您遇到的情况是,在大多数情况下键是唯一的,但有时它们不是唯一的,那么多映射将很有用。

      例如,如果您正在创建一个使用哈希作为键的缓存类。大多数情况下,两个不同的对象不会有相同的散列,所以键是唯一的。但是您可能会遇到不同对象的哈希冲突,因此您需要一个多重映射来涵盖这种情况。

      另一个例子是任何类型的非唯一索引(例如在数据库中)。

      至于多重集合——我认为那些用处不大。我唯一能想到的就是将它用作一种自动排序的列表。

      【讨论】:

        【解决方案4】:

        多重集或多重映射仅适用于可能存在多个特定项目的情况。例如,假设您想为一本书创建索引。你会浏览文本,扔掉所有真正常见的无意义单词(“a”、“an”、“the”等),然后列出所有其他单词,以及每个单词在书中的位置发生了。

        相当多的单词会出现在多个页面上,在这种情况下,您将有多个条目从一个单词映射到不同的页面。一种处理方法是使用从单词到页码的多重映射。

        【讨论】:

          【解决方案5】:

          一些用例:

          多地图

          • 以邮政编码为密钥,所有拥有该邮政编码的人
          • 以账户 ID 为键,该人/账户的所有未结订单
          • 字典,每个关键字都有各种解释

          多组

          本质上是一个带有键和整数计数的映射。

          • 一个店铺的库存,所有产品都有自己的key和数量 仍然可用的是价值
          • 某店铺累计销售数据,每卖出一件商品 产品 ID 被添加到多组中,从而增加了销售量

          【讨论】:

            【解决方案6】:

            使用多图,无论您想在何处使用树状结构。

            【讨论】:

            • [此答案被自动标记为“新用户提供的旧问题的迟到答案。此评论是在这种情况下。]此答案似乎没有给出任何理由或有任何研究价值。因此,请考虑大幅扩展答案或完全删除它。谢谢!
            【解决方案7】:

            在向量/列表(或任何其他容器)上使用多重集的最重要的好处是查找操作的时间复杂度。 multiset 的平均情况时间复杂度为 O(logn),unordered_multiset 为 O(1)。 multimap 和 ordered_multimap 也是如此。

            【讨论】:

              猜你喜欢
              • 2012-10-28
              • 1970-01-01
              • 2019-07-20
              • 2012-02-10
              • 2023-03-31
              • 1970-01-01
              • 2011-09-26
              • 2010-11-29
              • 2010-10-15
              相关资源
              最近更新 更多