C++ 算法 binary_search()2024年8月30日 | 阅读4分钟 C++ 算法 binary_search() 函数用于检查范围 [first, last) 中的元素是否与 val(或二元谓词)等效,否则返回 false。
语法参数first: 指向要搜索的范围中第一个元素的前向迭代器。 last: 指向要搜索的范围中最后一个元素之后的前向迭代器。 comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回true,否则返回false。它遵循严格的弱排序来对元素进行排序。 val: 用于比较范围内元素的上界值。 返回值如果找到与 val 等效的元素,则返回 true,否则返回 false。 复杂度平均而言,复杂度与 first 和 last 之间的距离成对数关系:执行最多 log2 (N) + 2 次元素比较,其中 N = last - first。 数据竞争访问范围 [first, last) 中的对象。 异常如果元素比较或迭代器操作抛出异常,此函数将抛出异常。 请注意,无效参数会导致未定义行为。 示例 1让我们看一个简单的例子来演示 binary_search() 的用法。 输出 4 found 示例 2让我们看另一个简单示例 输出 looking for a 3... found! looking for a 6... not found. 示例 3让我们看另一个简单的例子来使用比较函数比较元素。 输出 Here are the values in the vector: 1 2 3 4 5 6 7 9 10 The value 3 was found. The value 8 was not found. 示例 4让我们看另一个简单示例 输出 Sorted vector elements : 1 2 3 4 5 6 7 8 9 Searching for 4 : found! Searching for element greater than 9 : not found. 下一主题C++ 算法 |
C++算法shuffle() C++算法shuffle()函数通过使用g作为统一随机数生成器,将范围内的元素重新排序,将它们放置在随机位置。语法模板 <class RandomAccessIterator, class URNG> void shuffle (RandomAccessIterator first, RandomAccessIterator last, URNG&& g); 参数first:指向位置的随机访问迭代器...
阅读 2 分钟
C++ 算法 is_partitioned() C++ 算法 is_partitioned() 用于测试范围 [first, last) 是否根据谓词进行了分区。换句话说,范围中所有满足谓词的元素都在序列的开头。如果范围为空...
阅读 4 分钟
C++ 算法函数 equal() C++ 算法 equal() 函数比较两个容器中的元素,如果两个容器中的所有元素都匹配,则返回 true。第一个范围是 [first1,last1),第二个范围从 first2 开始。语法 template<class InputIterator1, class...
阅读 2 分钟
C++ 算法 stable_partition() C++ 算法 stable_partition() 函数用于对范围 [first, last) 中的元素进行分类,使得所有 pred 返回 true 的元素都排在所有 pred 返回 false 的元素之前,同时保留元素的相对顺序。注意:...
阅读 4 分钟
C++ 算法 set_union() C++ 算法 set_union() 函数用于查找两个已排序范围 [first1, last1) 和 [first2, last2) 的并集,该并集由存在于其中一个集合或两个集合中的元素组成。元素使用运算符 < 进行比较...
阅读 6 分钟
C++ 算法函数 any_of() C++ 算法 any_of() 函数测试范围中每个元素的 'pred' 值,如果任何元素的 pred 值为 true,则函数返回 true,否则返回 false。语法模板 <class InputIteratir, class UnaryPredicate> bool any_of (InputIterator first, InputIterator last, UnaryPredicate...
阅读1分钟
C++ 算法函数 mismatch() C++ 算法 mismatch() 函数比较两个容器以发现任何值不匹配。该函数返回两个容器中不匹配的第一个元素。语法模板<class InputIterator1, classInputIterator2> pair<InputIterator1, InputIterator2> mismatch(InputIterator1 first1, InputIterator2 first2> template<class InputIterator1, class InputIterator2, class BinaryPredicate> pair<InputIterator1,InputIterator2> mismatch(InputIterator1 first1,...
阅读 3 分钟
C++ 算法 partition() C++ 算法 partition() 函数用于根据其参数中提到的给定谓词(条件)对元素进行分区。如果容器被分区,则此函数返回 true,否则返回 false。语法模板 <class BidirectionalIterator, class UnaryPredicate> BidirectionalIterator partition (BidirectionalIterator first, BidirectionalIterator last, UnaryPredicate...
5 分钟阅读
C++ 算法函数 move() C++ 算法 move() 函数用于移动元素。它接受三个参数,然后将属于范围 [first,last) 的元素移动到以“result”开头的范围中。语法模板<class InputIterator, class OutputIterator> OutputIterator move(InputIterator first, InputIterator last, OutputIterator result); 参数 first: 它是...
阅读 2 分钟
C++ 算法函数 count() C++ 算法 count() 函数接受 'val' 作为参数,并比较元素 'val' 在范围内的出现次数。返回该元素的出现次数。语法模板 <class InputIterator, class T> typename iterator_traits<InputIterator>::difference_type count (InputIterator first, InputIterator last, const T& val); 参数 first: 它是一个...
阅读1分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India