C++ algorithm lower_bound()2024年8月30日 | 阅读4分钟 C++ algorithm lower_bound() 函数是 二分查找 的一个版本。此函数用于返回一个迭代器,指向有序范围 [first, last) 中第一个不小于(即大于或等于)指定值 val 的元素。 第一个版本使用运算符 < 来比较元素,第二个版本使用 comp 函数。 语法参数first: 指向要搜索的范围中第一个元素的前向迭代器。 last: 指向要搜索的范围中最后一个元素之后的前向迭代器。 comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回true,否则返回false。它遵循严格的弱排序来对元素进行排序。 val:用于比较范围内元素的下界值。 返回值它返回一个迭代器,指向范围内第一个不小于 val 的元素,如果没有找到这样的元素,则返回 last。 复杂度平均而言,复杂度在 first 和 last 之间的距离上呈对数关系:执行最多 log2 (N) + 1 次元素比较,其中 N = last - first。 数据竞争访问范围 [first, last) 中的对象。 异常如果元素比较或迭代器操作抛出异常,此函数将抛出异常。 注意:无效参数会导致未定义行为。示例 1让我们看一个简单的例子来演示 lower_bound() 的用法 输出 4, pos = 2 示例 2让我们看另一个简单示例 输出 lower_bound at position 3 upper_bound at position 6 示例 3让我们看另一个简单示例 输出 4 4 4 4 found at index 2 示例 4让我们看另一个简单示例 输出 First element which is greater than 'C' is b First element which is greater than 'C' is d All elements are less than 'z'. 下一主题C++ 算法 |
C++ 算法 generate() C++ 算法 generate() 函数用于将函数对象生成的值赋给范围中的每个元素。生成器函数由用户定义,并连续调用以赋值数字。语法模板 <class ForwardIterator, class Generator> void...
阅读 4 分钟
C++ 算法 includes() C++ 算法 includes() 函数如果排序范围 [first2, last2) 中的每个元素都在排序范围 [first1, last1) 中找到,则返回 true。如果 [first2, last2) 为空,它也返回 true。元素使用第一个版本中的运算符 < 或使用给定...
5 分钟阅读
C++ 算法 reverse() C++ 算法 reverse() 函数用于反转范围 [first, last) 内元素的顺序。语法模板 <class BidirectionalIterator> void reverse (BidirectionalIterator first, BidirectionalIterator last); 注意:BidirectionalIterator 是一种迭代器,用于以正向和...
阅读 4 分钟
C++ 算法 replace_copy_if() C++ 算法 replace_copy_if() 函数用于将范围 [first, last) 复制到从 result 开始的范围,将那些 pred 返回 true 的元素替换为 new_value。它使用谓词 pred 而不是运算符== 比较元素。此函数检查每个...
阅读 8 分钟
C++ 算法 random_shuffle() C++ Algorithm random_shuffle() 通过将范围的元素随机放置来重新排序。第一个版本使用内部随机数生成器,第二个版本使用随机数生成器,这是一种特殊类型的函数对象,显式地...
阅读 4 分钟
C++ 算法 generate_n() C++ 算法 generate_n() 函数用于将由函数对象生成的值分配给范围内指定数量的元素,并返回到最后一个分配值位置之后的一个位置。生成器函数由...
阅读 3 分钟
C++ 算法 partition() C++ 算法 partition() 函数用于根据其参数中提到的给定谓词(条件)对元素进行分区。如果容器被分区,则此函数返回 true,否则返回 false。语法模板 <class BidirectionalIterator, class UnaryPredicate> BidirectionalIterator partition (BidirectionalIterator first, BidirectionalIterator last, UnaryPredicate...
5 分钟阅读
C++ 算法函数 copy_backward() C++ 算法 copy_backward() 函数用于反向复制元素,它接受三个参数,然后复制属于范围 [first,last] 的元素。元素的复制以反向开始,终止点在 'result'。语法模板 <class BidirectionalIterator1,...
阅读 2 分钟
C++ 算法函数 none_of() C++ 算法 none_of() 函数如果 'pred' 参数的值为 false 则返回 true。该值对于范围 [first, last) 中的所有元素都应为 false。语法模板 <class InputIterator, class UnaryPredicate> bool none_of (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first : 它指定...
阅读 2 分钟
C++ 算法 unique_copy() C++ 算法 unique_copy() 函数用于复制序列,使得每个连续的重复元素都成为唯一元素。它不会改变原始范围,并将结果复制到另一个容器中。第一个版本使用 operator== 比较元素,第二个版本...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India