gpt4 book ai didi

c++ - 使用 upper_bound 严格返回较小的元素

转载 作者:行者123 更新时间:2023-11-28 06:08:06 24 4
gpt4 key购买 nike

我想找到数组中小于 K 的最大元素。我正在尝试使用 upper_bound() 函数:

upper_bound(a,a+n,k, std::greater<int>());

对于 int a[4] = {1, 2, 3, 4};int k = 3;,我希望输出为 1,因为a[1] = 2,这是小于k的最大元素。

但是,上面的比较器给出的输出为 4。我如何为此编写自己的比较器?

最佳答案

相当于

std::lower_bound(v.begin(), v.end(), v, std::less<>{})

std::upper_bound 是:

std::upper_bound(v.rbegin(), v.rend(), v, std::greater<>{}).base();

所有事物都是颠倒的(从看,相反的顺序)。

Live Demo

关于c++ - 使用 upper_bound 严格返回较小的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955202/

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