问题标签 [equal-range]
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++ - 如何实现等范围“迭代器”
如何实现泛型(又名适用于多图、排序向量...)等范围迭代器?我的意思是它是一个迭代器,它是一对迭代器(特定 equal_range 的开始和结束)
这样做的动机是我有一个称为 sortedword2word 的多图,我用它来检测字符串数组中的字谜。所以我想有一种方法可以轻松地迭代每个相等的范围(就像在 LOC/可读性方式中一样 - 我知道我可以通过手动检查 .end() 并且如果 next 与当前相同... )
如果 boost 已经实现了这样的功能,那么 A 也是可以接受的。
c++ - 根据 partial_index_search 的结果提升 multi_index_container 部分索引搜索
为了说明我的问题,我从 Boost 帮助文档的“电话簿”示例中复制了以下代码。
我可以进行如下部分搜索
但是,如果我需要计算姓氏是“White”的人数,然后继续找出有多少“White”的名字是“Dorothea”,那么最好的方法是什么?我想我可以用 pb.find(boost::make_tuple("White") 和 pb.find(boost::make_tuple("White","Dorothea")) 做两个部分查询。但我担心这是否会导致性能问题?由于第二个查询不知道第一个查询,只搜索整个容器。Boost 是否提供如下内容:
或者有没有更聪明的方法来做到这一点?不仅从方便的角度来看,而且从性能的角度来看。
c++ - 查找 vs equal_range 和性能
我正在使用 find、equal_range 和我自己的二进制搜索函数进行一些测试,但我无法理解为什么与 find 相比,equal_range 需要这么长时间。
我有一个排序的向量,我计算了搜索操作的持续时间。最初的想法是看看 find 和 equal_range 之间的性能差异是什么,但我期待随着数据量的增长,在向量上迭代会比二分搜索更糟糕,但这并没有发生。
我的代码非常简单,但我“怀疑”这里有问题,我不知道是什么。
-- 编辑 -- 我在 VS2012 中做这些测试 --
这次运行的输出是
干杯
c++ - boost::multi_index_container - equal_range 值
我一直在尝试使用带有映射的 boost 进程间库以及现在共享内存中的 multi_index_container 的一些解决方案。使用 multi_index_container,除了迭代从 equal_range 返回的值之外,还有其他方法吗?我希望从我的 non_unique 索引(站名,例如 ST0012345)中检索结果子集,然后查找/获取我需要的实际测量类型(例如温度)。
我需要检索测量点的唯一 pointID 值(例如 ST0012345SMD10000456.VoltsA = pointID - 45789),以将测量值插入数据 Historian。我喜欢 multi_index_container 的想法,因为我们的消息有效负载包含数组中一个站的约 100 到 200 个测量值,所以我想我可以对包含 500,000 多个项目的共享内存容器进行一次调用,然后从一个使用长唯一字符串名称的小得多的列表。
从我所做的阅读看来,我可能只能遍历从 multi_index_container 返回的较小列表,而不是进行获取/查找。
如果是这种情况,我最好还是坚持我原来的共享内存映射解决方案(我正在使用),正如我所说,它包含 500,000 多个长字符串来匹配以检索我们的数据历史记录所需的 pointID。每秒处理 200 个点的数据速率很高(我发现我的数据映射查找在测试环境中每秒可以达到 2000 个查找)。
另外,如果我确实使用了地图,那么在共享内存中拥有几张地图有什么害处,例如悉尼车站的地图(约 300,000 点),纽卡斯尔车站的地图(约 200,000 点)。
下面是我的程序的代码,它从创建 multi_index_container 的单独进程中检索项目。
}
c++ - equal_range 和 2 重载对“this”指针没有合法转换
这是这个简单的代码
它不编译,并给出以下错误
我看过很多关于这个错误的话题,似乎这是一个const
问题。如果我foo(const int* bar)
变成foo(int* bar)
.
问题是,我看不到foo
内容应该如何改变我的 MyMap 对象。std::multimap
提出一个 const 版本equal_range
:
http://www.cplusplus.com/reference/map/multimap/equal_range/
我的问题是什么?
谢谢
c++ - std::equal_range 不适用于具有 operator< 定义的结构
我正在尝试使用std::equal_range
下面的结构我有编译错误说error: no match for ‘operator<’
。
我已经查看了模板 implementationatino 并且失败的是以下*it
将指向 MyFoo 对象的迭代器延迟val_
为 10。
为什么它不工作?我想可能是因为它试图调用operator<
未定义的全局,但因为我将它定义为不应该成为问题的类成员,不是吗?
c++ - equal_range 应该如何工作?
我不明白为什么这段代码不打印。由于可能有很多server.url条目,我试图使用equal_range
.
c++ - 如何在多图中按排序顺序打印键的值
我需要设计一个数据结构,它基本上存储键值对,键是整数,值是字符串。
条件 1:可能有多个值与一个 Key 关联。
条件 2:我需要按降序打印此映射中存储的所有键。
条件3:虽然Keys(整数)按降序打印,但它们对应的值(字符串)必须按字典(升序)顺序打印。
样本输入:
预期输出:
请注意,键是按降序排列的,而值是按升序排列的。
为此,我在 C++ 中提出了以下代码:
但我得到如下所示的输出:
而我需要在 (78, Eve) 之前打印 pair(78, Alice)
c++ - 擦除 equal_range 迭代器
我有一对迭代器:
该对在 MultiMap 中保存重复的元素 - 例如,有 1 个对象有 2 个以上的重复项(基本上是 3 个对象),我需要删除其中的 2 个,所以只剩下 1 个。
我是通过一个简单的while循环来做到这一点的,如下所示:
之后,只剩下 1 个对象 - 这是我的目标。后来我发现我可能应该尝试通过 1 个函数调用来擦除整个对,并且应该不需要任何循环,如下所示:
这看起来更干净,但问题是它会删除所有对象。
然后我尝试了:
这似乎留下了第一个对象并删除了其余的对象,所以它对我有用,但我的问题是 - 这是正确的方法吗,我在寻找什么?
c++ - 对 multiset::equal_range 给出的值的 C++ 操作
我正在尝试编写一个程序,该程序从 0 到 9 获取 1000 个随机数,然后计算每个数字出现的次数:
问题出在最后一行(我试图计算 0 出现的次数),它在减号下划线并表示没有运算符与这些操作数匹配。但为什么?隔间不是 zero.first 和 zero.second 端吗?以及如何解决?
编辑:我必须使用 multiset、vector 和 equal_range,这些是我老师选择的东西,而不是我。