【C++】lower_bound()和upper_bound()有什么区别?(约237字)

  1. lower_bound():
  2. 返回一个指向范围内第一个不小于(即大于或等于)给定值的元素的迭代器。
  3. 如果给定值不存在于容器中,该函数返回指向第一个大于该值的元素的迭代器。如果所有元素都小于给定值,函数将返回一个指向容器末尾(end)的迭代器。
  4. upper_bound():
  5. 返回一个指向范围内第一个大于给定值的元素的迭代器。
  6. 如果所有元素都小于或等于给定值,函数将返回一个指向容器末尾(end)的迭代器。

举例说明:

假设我们有一个包含 {1, 2, 4, 4, 5, 6, 8} 的整数vector,并且我们想要搜索数字4。

  • 使用 lower_bound() 寻找4会返回指向第一个数字4的迭代器,因为4是数组中第一个"不小于"4的值。
  • 使用 upper_bound() 寻找4会返回指向数字5的迭代器,这是因为5是数组中第一个"大于"4的值。

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容