作为这个问题的国家...我没有得到一点关于 multisets / multimaps.

那么,有什么目的?

有帮助吗?

解决方案

一些使用情况:

基于

  • 与邮政编码作为一个关键,所有的人其中有的邮政编码
  • 与帐户ID作为钥匙,打开所订单的那个人/帐户
  • 字典,每个关键字的各种解释

多集

在本质上是一个地图的一个关键和一整数。

  • 该清单的一间商店,所有产品都有其关键的量 仍然可用的价值
  • 积累的销售数据的一个商店,每次一产品出售的 产品id获得的加入多集从而增加销售量

其他提示

一个例子:如果你有一个情况多重映射将是有益的,其中大部分时间键是唯一的,但有时他们是不是。

例如,如果要创建一个使用一个散列作为密钥的高速缓存类。大多数时候,两个不同的对象不会有相同的哈希,所以按键将是独一无二的。但它有可能,你会得到不同对象的哈希冲突,所以你会希望有一个多重映射到覆盖情况。

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

作为一个多重 - 我认为那些将是不太有用。我唯一能想到的事情是把它当作一种自动排序名单。

一个多重集或多重映射仅仅是对于其中可能有多于一个特定项目的一个的情况。例如,假设你想创建一本书的索引。你会从文本扫描,扔掉了所有的真正的共同无意义的词(“一”,“一个”,“中”,等等),然后让其余的全部名单,并在书的地方,每个发生。

不少的话会出现在多个页面,在这种情况下,你有多个条目从映射一个字不同的页面。之一的方法来处理,这将是从字多重映射到页码。

这里是什么 维基百科 说,有关用途:

  • 在学生注册系统,让学生可以参加 多个类的同时,还有 可能是一个协会为每一个 注册的学生在课程, 这里的关键是学生和ID 值是当身份证。如果一个 学生就读的中三课程, 将有三个协会 含有的相同的密钥。
  • 该索引的一本书可以报告任何数量的参考文件索引 术语,因此可以作为一个编码 基于从指数方面的任何 数量的基准地点

使用多重映射,无论你想用树样的结构。

使用在载体/列表(或任何其它容器)一个多重的最重要的好处是查找操作的时间复杂度。对于多重集平均情况下的时间复杂度是O(logn)时间和unordered_multiset是O(1)。同样适用于多重映射和ordered_multimap真。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top