1

multimap提供方法lower_boundupper_bound。两者都可以将迭代器返回到键大于期望值的值,并lower_bound可能产生完全期望的值。

现在我想要一个迭代器来指向一个键严格小于请求的值。如果它是 amap而不是multimap,这将相对简单地实现,如下所述: 在 C++ Map 中返回严格小于给定键的最大键。但是在 a 中multimap,递减迭代器并不能保证它指向一个严格更小的键。所以我需要反复递减,直到找到一个更小的键。不是特别好。

有没有更优雅的方式来做到这一点?

键通常是浮点数。


我很抱歉,事实证明你实际上可以通过一次减量来做到这一点。我只是把它错误地放在我的程序中,那是真正的错误。

4

2 回答 2

2

AFAIK,lower/upper_bound 会将迭代器返回到该值的第一个元素,所以你可以减少它

于 2011-05-24T16:19:23.660 回答
1

lower_bound指向大于或等于参数(或end)的最小元素。因此,将其递减一次会给您所需的元素(如果存在)。

于 2011-05-24T16:20:59.387 回答