C++ Algorithm upper 您所在的位置:网站首页 bound的用法及造简单句 C++ Algorithm upper

C++ Algorithm upper

2024-06-29 14:44| 来源: 网络整理| 查看: 265

C++ 算法 upper_bound() 函数是二分查找的版本。此函数用于返回一个迭代器,该迭代器指向范围 [first, last) 中第一个大于指定值 val 的元素。

第一个版本使用运算符 < 来比较元素,第二个版本使用给定的比较函数,即 comp。

用法 default (1) template ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val); custom (2) template ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val, Compare comp); 参数

first:指向要搜索的范围中的第一个元素的前向迭代器。

last:指向要搜索范围中过去最后一个元素的前向迭代器。

comp: 一个用户定义的二元谓词函数,它接受两个参数,如果两个参数按顺序返回真,否则返回假。它遵循严格的弱排序来对元素进行排序。

val: 用于比较范围内元素的上限值。

返回值

如果没有找到这样的元素,它返回一个迭代器,指向范围的第一个大于 val 或 last 的元素。

复杂度

平均而言,复杂性在第一个和最后一个之间的距离上是对数的:最多执行 log2 (N) + 1 次元素比较,其中 N = last - first。

数据竞争

访问范围 [first, last) 中的对象。

异常

如果元素比较或迭代器上的操作引发异常,则此函数将引发异常。

注意:无效的参数会导致未定义的行为。 例子1

让我们看一个简单的例子来演示 upper_bound() 的使用:

#include #include #include using namespace std; int main() { vector v = {3, 1, 4, 6, 5}; decltype(v)::iterator it = upper_bound(v.begin(), v.end(), 3); cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有