1

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

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

4

1 回答 1

1

我发现如果我使用由 equal_range 产生的两个迭代器之间的比较,那么如果用于 equal_range 的值不存在于容器中,则它们相等,因此 value 的 lower_bound 是大于它的值,upper_bound 也是大于的值所以价值不存在。
如果该值存在,则 2 个迭代器不相等。
我不应该使用结束迭代器。

于 2019-12-18T00:34:55.063 回答