草庐IT

multimap

全部标签

c++ - 如何将元素插入 multimap ?

我想在C++中设置一个multimap如下:multimap,vector>mmList;但是我怎样才能在其中插入数据呢?我尝试了以下代码,但它没有编译:mmList.insert(pair,vector("a","b",test)); 最佳答案 您可以使用std::make_pair(a,b)构造对。通常,您可以将对插入到map/多map中。在您的情况下,您必须构造一个由字符串对和vector组成的对:std::multimap,std::vector>mmList;std::vectorvec;mmList.insert(std

c++ - STL 的 multimap 如何插入尊重排序?

我有一些带有整数索引的数据。我不断生成新数据,这些新数据需要添加到我拥有的数据集合中,按该索引排序,同时我希望能够轻松地开始数据并遍历它。这听起来std::multimap正是我所需要的。但是,我还需要按照插入顺序保存具有相同索引的数据,在这种情况下,这意味着当我遍历数据时,我会先获取较早的数据,然后再获取较晚的数据。multimap会这样做吗?我没有找到任何保证是这种情况。在sgi手册中,我没有看到任何提及是否。我在gcc4.3.4实现上进行了尝试,对于一些有限的测试用例似乎是正确的,但我当然想知道标准是否要求这样做,我可以依赖这个事实。编辑:为了更清楚地回应一些答案,我希望数据首先

c++ - 为什么 multimap 允许重复的键值对?

编辑:请注意,我不问为什么多重map不能包含重复的键。多重映射允许重复键值对背后的基本原理是什么?(不是键)#include#include#includeintmain(intargc,char**argv){std::multimapm;m.insert(std::make_pair("A","B"));m.insert(std::make_pair("A","B"));m.insert(std::make_pair("A","C"));std::cout这个打印出来的3让我有点吃惊,我希望multimap表现得像一组pairs,所以我期待2。直观地说,它与C++std::map行

java - 过滤 Guava Multimap

是否有内置方法或方法组合使用谓词返回GuavaImmutableMultimaps的过滤View,就像使用常规map一样?似乎没有接受ImmutableMultimap作为参数的Maps.filter方法。查看API,我可以调用asMap()并获取基于map的多mapView并以这种方式执行过滤器。但是,我需要从我的函数中返回一个ImmutableMultimap,并且由于显而易见的原因,没有办法将Map>视为ImmutableMultimap-而不必构造一个新的Multimap。即使我可以将其过滤为Map并将其转换回ImmutableMultimap,因为它们都只是View(我认为?

java - 高性能并发 MultiMap Java/Scala

我正在寻找一种高性能、并发的MultiMap。我到处搜索,但我根本找不到使用与ConcurrentHashMap相同的方法的解决方案(仅锁定哈希数组的一部分)。多图会经常被读取、添加和删除。多映射键是一个字符串,它的值是任意的。我需要O(1)来查找给定键的所有值,O(N)可以删除,但O(logN)将是首选。删除给定键的最后一个值将从键中删除值的容器至关重要,以免内存泄漏。编辑:这是我构建的解决方案,在ApacheV2下可用:Index(multimap) 最佳答案 为什么不用一些很好的类似Scala的方法来包装ConcurrentH

c++ - std::multimap 中的唯一键是否存在迭代器?

是否有一种简单或标准的方法来让multimap迭代器遍历multimap中的唯一键?即对于看起来像这样的集合:{1,"a"},{1,"lemon"},{2,"peacock"},{3,"angel"}一个从{1,"a"}开始然后递增将指向{2,"peacock"}然后再次递增将指向{的迭代器3、“天使”}? 最佳答案 您可以使用upper_bound代替++来增加迭代器位置:#include#include#includeusingnamespacestd;intmain(){multimapmm;mm.insert(make_pa

c++ - "multiset"& "multimap"- 有什么意义?

正如问题所述...我不明白multisets的意思/multimaps.那么,目的是什么? 最佳答案 一些用例:多map以邮政编码为key,所有拥有该邮政编码的人以账户ID为key,该人/账户的所有未结订单字典,每个关键字都有不同的解释多组本质上是一个带有键和整数计数的映射。一个店铺的库存,所有产品都有自己的key和数量仍然可用的是值(value)店铺累计销售数据,每售出一件商品产品ID被添加到多组中,从而增加了销售量 关于c++-"multiset"&"multimap"-有什么意义?

c++ - "multiset"& "multimap"- 有什么意义?

正如问题所述...我不明白multisets的意思/multimaps.那么,目的是什么? 最佳答案 一些用例:多map以邮政编码为key,所有拥有该邮政编码的人以账户ID为key,该人/账户的所有未结订单字典,每个关键字都有不同的解释多组本质上是一个带有键和整数计数的映射。一个店铺的库存,所有产品都有自己的key和数量仍然可用的是值(value)店铺累计销售数据,每售出一件商品产品ID被添加到多组中,从而增加了销售量 关于c++-"multiset"&"multimap"-有什么意义?

c++ - STL::multimap - 我如何获取数据组?

Multimap本质上具有按键排序的数据组。我想要一种方法,通过它我可以访问这些单独的组并获取它们的汇总值。例如,在std::multimap我存储{"Group1",1},{"Group1",2},{"Group1",3},{"Group2",10},{"Group2",11},{"Group2",12}存储了这些值后,我应该能够迭代这个multimap并获得每个“组”的聚合值。问题是STL中没有定义任何函数来以这种方式访问​​MultiMaps。我可以使用lower_bound,upper_bound手动迭代multimap并汇总组的内容,但我希望在STL中已经定义了更好的方法?任

c++ - STL::multimap - 我如何获取数据组?

Multimap本质上具有按键排序的数据组。我想要一种方法,通过它我可以访问这些单独的组并获取它们的汇总值。例如,在std::multimap我存储{"Group1",1},{"Group1",2},{"Group1",3},{"Group2",10},{"Group2",11},{"Group2",12}存储了这些值后,我应该能够迭代这个multimap并获得每个“组”的聚合值。问题是STL中没有定义任何函数来以这种方式访问​​MultiMaps。我可以使用lower_bound,upper_bound手动迭代multimap并汇总组的内容,但我希望在STL中已经定义了更好的方法?任