C++ Algorithm nth_element()2024年8月30日 | 5分钟阅读 C++ Algorithm nth_element() 函数用于将第一个元素和第 n 个元素之间的元素按升序排序,而第 n 个元素和最后一个元素之间的元素则不排序。然而,第 n 个元素和最后一个元素之间的任何元素都不会小于第一个元素和第 n 个元素之间的任何元素。 第一个版本使用运算符 < 比较元素,第二个版本使用 comp 比较元素。 语法参数first:一个随机访问迭代器,指向要使用的范围中的第一个元素。 last:一个随机访问迭代器,指向要使用的范围中最后一个元素的后面一个元素。 comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回true,否则返回false。它遵循严格的弱排序来对元素进行排序。 nth:一个随机访问迭代器,指向范围 [first, last) 中将包含已排序元素的位置。 返回值无 复杂度平均而言,复杂度与 first 和 last 之间的距离呈线性关系:比较元素并可能交换它们,直到元素被正确重新排列。 数据竞争范围 [first, last) 中的对象会被更改。 异常如果任何元素比较、元素交换或迭代器上的操作抛出异常,此函数将抛出异常。 注意:无效参数会导致未定义行为。示例 1让我们看一个简单的例子来演示 nth_element() 的用法 输出 Before: 1 3 6 1 2 4 7 0 After: 2 0 1 1 3 4 7 6 示例 2让我们看另一个简单示例 输出 Elements are: 5 6 4 3 2 6 7 9 3 The median is 5 The second largest element is 7 示例 3让我们看另一个简单示例 输出 myvector contains: 5 2 3 1 4 6 7 8 9 示例 4让我们看另一个简单示例 输出 Original vector: v1 = ( 0 3 6 9 12 15 1 4 7 10 13 16 2 5 8 11 14 17 ) Position 3 partitioned vector: v1 = ( 1 0 2 3 8 5 9 4 7 6 10 16 13 15 12 11 14 17 ) Position 4 partitioned (greater) vector: v1 = ( 16 17 14 15 13 12 11 9 7 8 10 6 1 4 5 3 2 0 ) Shuffled vector: v1 = ( 13 10 6 3 5 2 0 17 11 8 15 9 7 14 16 1 12 4 ) Position 5 partitioned (UDgreater) vector: v1 = ( 14 17 15 16 13 12 10 11 9 8 0 2 7 5 3 1 6 4 ) 下一主题C++ 算法 |
C++ 算法 is_partitioned() C++ 算法 is_partitioned() 用于测试范围 [first, last) 是否根据谓词进行了分区。换句话说,范围中所有满足谓词的元素都在序列的开头。如果范围为空...
阅读 4 分钟
C++ 算法 partition_copy() C++ Algorithm partition_copy() 函数用于将满足条件的元素复制到一个目标,将不满足条件的元素复制到另一个目标。元素必须属于指定的范围。语法模板 <class InputIterator, class OutputIterator1, ...
阅读 4 分钟
C++ 算法函数 copy_if() C++ 算法 copy_if() 函数用于将容器 [first,last] 的元素复制到从 result 开始的不同容器中,其中 pred 的值为 true。语法模板<class InputIterator, class OutputIterator, class UnaryPredicate> OutputIterator copy_if(InputIterator first, InputIterator last, OutputIterator result,UnaryPredicate pred); 参数 first: 它是...
阅读1分钟
C++ 算法 random_shuffle() C++ Algorithm random_shuffle() 通过将范围的元素随机放置来重新排序。第一个版本使用内部随机数生成器,第二个版本使用随机数生成器,这是一种特殊类型的函数对象,显式地...
阅读 4 分钟
C++ 算法函数 all_of() C++ 算法 all_of() 函数在 'pred' 参数的值为 true 时返回 true。该值对于范围 [first, last] 中的所有元素都应为 true。语法模板 <class InputIterator, class UnaryPredicate> bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first: 它指定了...
阅读1分钟
C++ 算法函数 count_if() C++ 算法 count_if() 函数有一个 'pred' 值,并返回范围 [first, last) 中 pred 值为 true 的元素的数量。语法模板 <class InputIterator, class UnaryPredicate> typename iterator_traits<InputIterator>::difference_type count_if(InputIterator first, InputIterator last,UnaryPredicate pred); 参数 first: 它是一个输入迭代器...
阅读1分钟
C++ 算法 remove_if() C++ Algorithm remove_if() 函数用于从给定范围 [first, last) 中删除所有满足谓词的元素,而不会干扰其余元素的顺序。此函数不能更改容器的大小。它返回指向新结束位置的迭代器...
阅读 6 分钟
C++ 算法 binary_search() C++ 算法 binary_search() 函数用于检查范围 [first, last) 中的元素是否等同于 val(或二元谓词),否则为 false。范围 [first, last) 必须满足以下所有条件:根据 element < val 或 comp 进行分区...
5 分钟阅读
C++ 算法 partial_sort() C++ 算法 partial_sort() 函数用于重新排列范围 [first, last) 中的元素,使得 first 和 middle 之间的元素将被排序,而 middle 和 last 之间的元素将处于未指定顺序。这...
阅读 6 分钟
C++ 算法函数 for_each() C++ 算法 for_each() 函数将函数 func 应用于从“first”到“last”范围内的所有元素。语法模板 <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function func); 参数 first: 指定列表中的第一个元素。last: 指定...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India