gpt4 book ai didi

不严格大于的 C++ STL 算法 upper_bound()

转载 作者:行者123 更新时间:2023-11-28 03:34:34 25 4
gpt4 key购买 nike

与 lower_bound 不同,upper_bound 不会返回元素的迭代器,如果它比较等于值,但只有当它比较严格更大时。

如果我想要一个大于或等于的 upper_bound 算法,是否有替代方案。

最佳答案

您可以将迭代器减 1。

auto begin = ...;
auto end = ...;
auto it = std::upper_bound(begin, end, target);
if (it == begin)
return it;
-- it;
if (*it < target)
return ++it;
else
return it;

迭代器的位置会是这样的,假设你要搜索2:

1 1 1 2 2 2 2 3 3 3 3
^ ^ ^
lb | ub
this function


1 1 1 1 3 3 3 3
^
lb & ub & this function

关于不严格大于的 C++ STL 算法 upper_bound(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com