C++ Algorithm upper | 您所在的位置:网站首页 › bound的用法及造简单句 › C++ Algorithm upper |
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 实验室设备网 版权所有 |