【问题标题】:can i use equal_range to get range of values or end of container?我可以使用 equal_range 来获取值的范围或容器的结尾吗?
【发布时间】:2019-12-17 12:24:43
【问题描述】:

我知道 equal_range(k) 可以得到值的范围:
以 k 开头或大于 k 的元素或 end and
以大于 k 或 end 的元素结束。
我想修改这种行为,只给我一个值范围:
以 k 或 end 开头
以大于 k 的元素结束或结束

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

【问题讨论】:

    标签: boost-multi-index equal-range


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2022-12-09
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      相关资源
      最近更新 更多