问题标签 [multimap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
455 浏览

c++ - C ++定义两个多图导致程序崩溃

这完全让我感到困惑。在我的班级声明中,我有两行:

代码编译没有问题,但是当我运行它时,我收到以下错误:

看起来很简单,只不过和后面两个变量的处理方式无关。我删除了其余代码中对变量的所有引用 - 仍然崩溃。我注释掉了其中一行 - 任何一行,程序运行没有问题。错误怎么可能不与任何一个特定变量有关?我在假设 STL 中没有错误的情况下工作,但我已经没有关于我的代码如何可能做到这一点的想法。

这让我很困惑,所以我很感激你能提供的任何帮助。怀亚特

编辑:我并不是说 STL 有问题,那只是我有点油嘴滑舌。我知道错误在我的代码中,我想知道的是 - 声明未引用的变量会导致它崩溃可能有什么问题?为什么这会影响我的代码?

我的代码有几千行,所以不值得任何人花时间阅读它,我只是在寻找能指引我正确方向的人。

0 投票
2 回答
3499 浏览

c++ - 使用 boost multi_index_container 保留插入顺序

我最初开始使用 astd::multimap来存储许多具有相同键的值,但后来我发现它不会保留具有相同键的值之间的插入顺序。 这个答案声称它可以用 来完成boost::multi_index::multi_index_container,但没有给出例子。浏览文档,没有这种用法的例子,我无法确定你应该如何使用这个东西。我已经开始期待使用较少的 boost 库的文档很差,但这很容易。任何人都可以向我指出一个教程或示例,显示它以我想要的方式使用,或者甚至自己提供一个示例吗?

0 投票
2 回答
3209 浏览

scala - Scala 不可变多映射

在 Scala 中,我希望能够编写

底层的 Map[Owner,Set[Pet]] 应该同时具有 Map 和 Set 不可变。这是带有伴生对象的 ImmutibleMultiMap 的初稿:

你能优雅地解决注释行吗?地图和集合都应该成为不可变的。

谢谢!

0 投票
5 回答
9137 浏览

java - 具有良好性能的多图

在我的代码中,我有一张在几秒钟内被大量使用的地图,几千次。最初我有一个 TreeMap,但在测试 9,000 个条目时,我看到我的旧处理器融化了。这需要扩展。所以我搬到了一个 HashMap 并且性能非常好。

现在我正在改变我的设计并正在寻找一个 MultiMap。但是我担心对性能的影响get(),因为它必须遍历所述大地图来挑选匹配的键,并且当多次调用甚至同步时,它似乎会很慢。

是否有一个好的 MultiMap 可以处理如此大的值并具有出色的性能?性能在此应用程序中至关重要,因为可能有许多大型独立地图处理非常大的工作负载,这使得“小”性能损失成为非常大的问题。

如果可以提取它以单独工作而没有任何依赖关系,则可以加分。

0 投票
2 回答
706 浏览

c++ - 地图迭代器

你好,我正在尝试制作一个包含以下对象的地图:员工类>>派生自员工:以下类是:工人、经理和副管理。在我的地图中,我想让对象 Employee 按他的 ID 排序,它是 char* 我试图创建这样的地图:`

我的代码中有很多问题我很想提前听听你们想说什么

0 投票
10 回答
18756 浏览

java - 高性能并发 MultiMap Java/Scala

我正在寻找一个高性能、并发的 MultiMap。我到处搜索,但我根本找不到使用与 ConcurrentHashMap 相同的方法的解决方案(仅锁定哈希数组的一部分)。

多图将经常被读取、添加和删除。

多映射键将是一个字符串,它的值将是任意的。

我需要 O(1) 来查找给定键的所有值,O(N) 可以删除,但 O(logN) 将是首选。

至关重要的是,删除给定键的最后一个值将从键中删除值的容器,以免泄漏内存。

编辑:这是我构建的解决方案,在 ApacheV2 下可用: 索引(多图)

0 投票
2 回答
2103 浏览

c++ - 如何检查我的迭代器是否站立在任何东西上

我正在使用 multimap stl,我迭代我的地图,但我没有在地图中找到我想要的对象,现在我想检查我的迭代器是否包含我想要的东西,我遇到了困难,因为它不是 null 什么的。谢谢!

0 投票
2 回答
1341 浏览

c++ - 这种嵌套向量/多图/地图的使用可以吗?

我正在为以下场景寻找完美的数据结构:

我有一个索引i,对于每一个我需要支持以下操作 1:快速查找它的Foo对象(见下文),每个对象都与一个double值相关联。

所以我这样做了:

但事实证明它效率低下,因为我还必须为以下操作 2提供非常快速的支持:删除所有对andFoo具有特定值的 s (以及相关联的 double 值)。ab

要执行此操作 2,我必须遍历向量中的映射,检查Foos 的ab值并从映射中一个一个地擦除它们,这似乎非常昂贵。

所以我现在正在考虑这个数据结构:

这应该为上述操作 1 和 2 提供快速支持。这合理吗?嵌套容器结构是否有很多开销?

注意:每个多图通常只有一个或两个键(类型Foo0),每个键大约有 5-20 个值(类型std::map<int,double>)。

0 投票
4 回答
812 浏览

java - 在没有比赛的 ConcurrentMultimap 上实现删除

我一直在研究编写并发Multimap的问题,并且我有一个由Google Guava AbstractSetMultimap 和 MapMaker 计算地图支持的实现,它可以按需创建值集合作为 ConcurrentHashMap 上的集合视图。通过对视图集合和各种包装器的一些关注,我认为这非常接近。

其他尝试过这个的已经讨论过的大问题似乎是当它们为空时从底层映射中删除值集合,而不引入竞争条件。

似乎存在几个选项。

  • 将空集合留在那里。这会泄漏一些 CHM,但我相信它至少是正确的。
  • 尝试乐观地在空时删除集合,并在其中出现任何其他内容时进行补偿。这充满了种族,似乎本质上是不可能解决的。
  • 同步 values-collection 上的所有内容,这至少允许删除,但代价是在键初始查找后的任何并发性。
  • 对于较小的惩罚(也许,取决于使用模式?),也许在值集合创建和删除时同步,需要检查是否涵盖了所有内容。

问题:

  • 有谁知道比这更好的实现?我们可以更好地组合 MapMaker 的部分,还是需要从头开始编写专门的 ConcurrentHashMultimap?
  • 如果很难在这方面做出很大改进,那么这种泄漏在实践中是否可能是一个很大的问题?java.util.HashMap、juc.ConcurrentHashMap 和 ArrayDeque 等著名的集合不会向下调整后备存储的大小,而 ArrayList 也不会自动这样做。只要我们清除对象,我想这会不会太重要。

谢谢


编辑:另请参阅番石榴邮件列表上的讨论。


编辑2:我已经写了这个。请参阅此 Google 代码区以了解实现。我将非常感谢任何尝试它的人的反馈,那里而不是这里。

0 投票
4 回答
56474 浏览

java - 如何遍历谷歌多地图

我必须遍历谷歌多地图。但

  1. 我正在使用 jdk 1.4 并且无法切换到更高版本。所以我不能使用通用功能。
  2. 我的多重映射可以有多个键值。
  3. 可能存在一种情况,即 multimap 的值本身就是 multimap