gpt4 book ai didi

c++ - 给定排序 vector 找到从负到正的转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:26 26 4
gpt4 key购买 nike

给定一个排序的 std::vector<int> ,我想使用 C++11-STD 函数找到元素从负向正过渡的索引。

我知道我可以使用二进制搜索来实现它,但我对标准库中是否有任何函数感兴趣,类似于一元 find_if ,这将有助于此搜索(可能与正确的 lambda 表达式有关)。

最佳答案

您应该找到 lower_bound共 0 个:

auto iter = std::lower_bound(vec.begin(), vec.end(), 0);

生成的迭代器将指向最早的位置,您可以在该位置插入 0 而不会打乱元素的顺序。同样,upper_bound 将返回最右边的此类迭代器。

算法的运行时间是O(logN)

关于c++ - 给定排序 vector 找到从负到正的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127708/

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