问题标签 [multiset]
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.
c++ - 迭代`std::multiset`的独特元素
我所需要的只是知道某物是否存在以及它存在多少次。我将遍历现有事物并查询其中存在多少。
到目前为止,我的实现使用multiset
,我执行以下操作:
澄清
我有一个向量thing
s。但他们有时会重复这个值,我想迭代 unique thing
s 并为每个独特的做一些事情。这个“东西”需要知道它thing
出现在向量上的时间量。
我上面发布的代码是我现在解决问题的方法,它似乎不是做我想做的最优雅的方式。
我只是遵循 Stackoverflow 指南:我告诉我我的问题是什么,我告诉我(尝试过的)解决方案。
如果真的需要一个带问号的句子,你就去吧:有没有办法在 a 上迭代独特的元素multiset
?
c++ - 使用迭代器从 STL 多重集中擦除元素
我在单独的数据结构中维护一组多集容器的迭代器。过了一会儿,我从这个数据结构中选择了一个迭代器,然后从多重集中删除了与该迭代器相关的元素。我首先使用这样的东西:
然而,事实证明第二个myints.erase (it);
原因是分段错误。因此,我更改为以下代码并且它可以工作。我想知道这是否是好方法或者它是可行的undefined
情况:
c++ - 将向量分配给多重集
将 std::vector 分配给 std::multiset 有什么好的方法吗?当然除了迭代。我看到在 C++11 中有类似初始化列表的东西,也许它可以以某种方式使用?
scala - 将 multiset/bag 实现为 Scala 集合
受这个问题的启发,我想在 Scala 中实现一个Multiset。我想MultiSet[A]
:
- 支持加、删、并、交、差
- 是一个
A => Int
,提供每个元素的计数
这是一种方法,扩展Set
:
扩展Set
很好,因为它意味着MultiSet
自动获取联合、差异等的定义。以下所有内容都将成立:
但是,我将不得不重写一些继承的方法,例如union
,intersect
因为它们会对多重集做错误的事情,例如以下内容不成立:
扩展的另一个问题Set
是我不能MultiSet
成为一个,A => Int
因为我会得到错误:illegal inheritance; class MultiSet inherits different type instances of trait Function1: A => Int and A => Boolean
. 我可以通过声明一个单独的count
方法来解决这个问题,但我真的更喜欢这个类只是一个A => Int
.
另一种方法是继承 from Map[A, Int]
,这会给我A => Int
我想要的,但是我必须定义我自己的所有++
,--
等,因为在Map
这些中将定义(A, Int)
成对,但对于多集,它们需要定义在 A
s.
我想第三种方法是同时放弃Set
and Map
,只实现一个新的子类Iterable
或其他。
你会推荐什么?适合MulitSet
Scala 集合框架的最佳方法是什么?
python - 测试集合是否是子集,考虑集合中每个元素的数量(多重性)
我知道我可以测试 set1 是否是 set2 的子集:
但以下也是正确的:
我如何让它考虑集合中的元素出现的次数,以便:
我知道我可以做类似的事情:
但我想知道是否有更简洁的东西set(A).issubset(B,count=True)
或一种远离列表推导的方法。谢谢!
scala - 将 TraversableOnce[T] 转换为 Multiset-like 或 Histogram-ish Map[T, Int] 的最简洁方法是什么?
我想将 Traversable[T] 转换为带有计数的 Map[T, Int] 直方图。我希望结果是一个不可变的 Map ,它与我会得到的结果相匹配:
但看起来这在空间或时间上效率不高......因为groupBy
维护对可遍历中的每个元素的引用,这在具有少量唯一键的大型可遍历上表现不佳。我真的想要更像这样的东西:
有没有一种库方法可以给我这个结果(理想情况下,可以很好地与并行集合一起使用)?
c++ - C ++:使用std :: function在multiset中插入元组,并保持顺序
很简单,这段代码有什么问题?
g++ 4.7.2
简单地使用 - with 命令编译g++ -std=c++11 main.cpp
我为什么要这样做?
程序是实时运行的,add_even_handler
函数中包含一个类型double
为 called的值time
(注意time
这里的变量与时钟或实际时间无关,它只是一个 double 类型的递增对象)。因此,当用户添加一些事件时,它将在某个时间被调用。
标准下的多集容器将按某种顺序整理对象(通常,如果不总是,std::less<T>
)。然后循环遍历容器,我可以Event
在不断增加的变量变化时调用double time
。
问题是什么?
正如 KyleC 所指出的(见他的回答),std::function<>
编译器不理解在什么过程中订购
我是如何克服这个问题的
你每天学习新的东西。上面的代码是最初混合std::multiset
和std::tuple
. std::map<T,S>
orstd::multimap<T,S>
也按关联的排序key
,在这种情况下是 type double
,默认情况下它也是std::less<T>
。所以代替上面的,我做了类似下面的事情
这只是写在这里,以防它可能对人们有所帮助,尽管很明显但仍然如此。
python - 如何找到计数器的第二个最大值 - Python
可以这样访问计数器的最大值:
如果我想要一个按降序计数的排序计数器怎么办?
我如何访问第二个最大值,或者第三个或第 N 个最大值键?
c++ - 多集迭代器之间的距离
我们能找到复杂度小于 O(n) 的多重集中的两个迭代器之间的距离吗?
我尝试使用迭代器标头提供的 std::distance() 函数。但它的内部实现对于多集迭代器是 O(n)。
c++ - 使用多组生日对象编写生日日历但排序不起作用
我正在编写一个包含多组生日对象的生日日历。我的比较功能排序不正确,我无法按名称搜索 b 日。
这是我的比较功能。我希望能够按生日或部分生日和全名搜索数据库。我无法按名称搜索部分工作。
我已经为 multiset 使用了类型 def 并在我的定义中使用它来包含对象函子,但为了简洁起见,将其从这段代码摘录中删除。