问题标签 [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.

0 投票
0 回答
409 浏览

c++ - std::equal_range() 返回值

根据cppreference.com

返回值

std::pair 包含一对定义所需范围的迭代器,第一个指向不小于 value 的第一个元素,第二个指向大于 value 的第一个元素。 如果没有不小于 value 的元素,则返回 last 作为第一个元素。同样,如果没有大于 value 的元素,last 作为第二个元素返回。

根据粗体文本,假设以下内容是否正确?

0 投票
0 回答
41 浏览

c++11 - 从 equal_range 比较 std::pair<> first 和 last

在地图(模板)的上下文中,用于以下用法

keyBegin和的类型keyEnd是无符号整数。

我收到以下编译错误:

有人可以指出这个错误的原因吗?我的理解是,std::equal_range<> 返回的 std::pair<> 分别具有 First 和 second 类型的 ForwardIterator 成员。

0 投票
1 回答
162 浏览

stl - Rcpp:使用相等范围按键对多图值求和

下面我有一个代码片段,它封装了我遇到的问题。

我正在尝试做的事情在 R 中是微不足道的,但在 Rcpp 中要困难得多。我只是根据它们各自的键尝试聚合值。在这个例子中,我只是想得到与第一个键对应的值的总和。我在 C++ 中做了一些非常相似的事情,但出于某种原因,Rcpp 端口给了我一些问题。

另外,请注意,提供的代码仅代表我遇到的更大问题。所以我知道尝试单独在 Rcpp 中实现这一点并不是很好地利用时间。

0 投票
1 回答
1070 浏览

c++ - 具有基于范围的循环遍历 equal_range 的 C++ 多图:错误消息

我正在尝试使用基于范围的 for 循环来迭代 multimap 的 equal_range。我正在模仿我看过的代码,但出现错误。

以下是编译时发生的情况:

我最后一次使用 C++ 是在 C++11 之前。我究竟做错了什么?

0 投票
2 回答
164 浏览

c++ - 使用带前缀的字符串查找容器的相等范围

我有 2 个迭代器 range_begin、range_end,它们是我的容器。我需要找到所有以 char 前缀开头的字符串。这是我的代码:

例如,对于

我想首先在“莫斯科”上获得迭代器,最后在“摩尔曼斯克”之后获得迭代器。

我收到奇怪的编译器错误。出了什么问题,我该如何解决?我无法编写正确的 lambda 比较器。

0 投票
2 回答
507 浏览

c++ - 如果键小于第一个地图元素,为什么 unordered_map::equal_range upper_bound 返回 end

我注意到 unordered_map::equal_range upper_bound (first) 如果传递的键小于 map 的第一个键,则返回 end

输出是:

请注意,map 和 unordered_map 的行为是不同的——有什么原因,或者这是 unordered_map 的问题吗?

0 投票
2 回答
672 浏览

c++ - std::distance 很慢,如何改进?

std::distance似乎很慢。我有一个大的多图并尝试使用equal_range公共键查找元素:

需要的std::distance时间比equal_range. 我天真地假设在进行 equal_range 时,距离是自动计算的。事实上,这是两个独立的计算。

有没有不同的方法来获取元素的总数equal_range

0 投票
1 回答
46 浏览

c++ - 用于关联容器的 C++ 入门 5ed equal_range

在 C++ prime 5 Ed 第 11 章。关联容器。“表 11.7. 在关联容器中查找元素的操作”:

据说:“c.equal_range(k)返回一对迭代器,表示带有键 k 的元素。如果 k 不存在,则两个成员都是 c.end()。”

  • 但正如你所见,上面13没有找到,但它返回一个pair元素的迭代器16, 16?!
0 投票
1 回答
30 浏览

boost-multi-index - 我可以使用 equal_range 来获取值的范围或容器的结尾吗?

我知道 equal_range(k) 为我提供了值的范围:
从 k 或大于 k 的元素或 end 开始,以大于 k 或 end
的元素结束。
我想修改此行为以仅给我一个值范围:
从 k 开始或
以大于 k 的元素结束或结束

这是为了达到结果,如果容器中不存在范围,则将迭代器返回到结束,以便我可以将它们与容器的结尾进行比较。
我怎样才能做到这一点???
我尝试使用范围功能?
但是当我将 make_tuple 形成复合键传递给 lower_bound 时,它给了我巨大的错误,所以我放弃了

0 投票
1 回答
67 浏览

c++ - 我无法计算出相等的范围

所以我有这段代码,我在其中打印下限、上限和相等范围,但是如果有人知道我将如何提交编码解决方案,IDK 如何打印相等范围谢谢