C++ 算法 inplace_merge()30 Aug 2024 | 3 分钟阅读 C++ 算法 inplace_merge() 函数用于将两个连续的已排序范围 [first, middle) 和 [middle, last) 合并成一个已排序的范围 [first, last)。 对于第一个版本,使用运算符 < 比较元素,或者对于第二个版本,使用给定的二元比较函数 comp 比较元素。 语法参数first: 一个双向迭代器,指向要合并并排序成单个范围的两个连续已排序范围中第一个范围的第一个元素。 last: 一个双向迭代器,指向要合并并排序成单个范围的两个连续已排序范围中第二个范围的最后一个元素的后一个位置。 middle: 一个双向迭代器,指向要合并并排序成单个范围的两个连续已排序范围中第二个范围的第一个元素的位置。 comp: 用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回 true,否则返回 false。它遵循严格弱序来排序元素。 返回值无 复杂度如果提供足够的额外内存,则复杂性与 first 和 last 之间的距离呈线性关系:执行 N-1 次比较,以及最多两倍的元素移动。 否则,复杂性为对数线性:执行最多 N*log(N) 次元素比较,其中 N = last - first,以及最多相同次数的元素交换。 数据竞争范围 [first, last) 中的对象被修改。 异常如果任何元素比较、元素交换(或移动)或迭代器操作抛出异常,则此函数会抛出异常。 注意:无效参数会导致未定义行为。示例 1让我们看一个简单的例子来演示 inplace_merge() 的用法 输出 Vector v1 : 5 10 15 20 25 Vector v2 : 10 20 30 40 50 Vector v3 : 5 10 10 15 20 20 25 30 40 50 示例 2让我们看另一个简单示例 输出 The resulting vector contains: 5 10 10 15 20 20 25 30 40 50 示例 3让我们再看一个简单的例子来演示使用运算符 < 的 inplace_merge() 的用法 输出 1 2 3 4 5 示例 4让我们看一个简单的例子来演示使用比较函数的 inplace_merge() 的用法 输出 5 4 3 2 1 示例 5让我们看另一个简单示例 输出 -9 0 1 2 3 4 7 9 10 下一主题C++ 算法 |
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分钟
C++ 算法 generate() C++ 算法 generate() 函数用于将函数对象生成的值赋给范围中的每个元素。生成器函数由用户定义,并连续调用以赋值数字。语法模板 <class ForwardIterator, class Generator> void...
阅读 4 分钟
C++ 算法 partial_sort() C++ 算法 partial_sort() 函数用于重新排列范围 [first, last) 中的元素,使得 first 和 middle 之间的元素将被排序,而 middle 和 last 之间的元素将处于未指定顺序。这...
阅读 6 分钟
C++ 算法 nth_element() C++ 算法 nth_element() 函数用于将 first 和 nth 元素之间的元素按升序排序,而 nth 和 last 之间的元素则不排序。然而,nth 和 last 之间没有元素小于 first 和...
阅读 6 分钟
C++ 算法函数 copy_backward() C++ 算法 copy_backward() 函数用于反向复制元素,它接受三个参数,然后复制属于范围 [first,last] 的元素。元素的复制以反向开始,终止点在 'result'。语法模板 <class BidirectionalIterator1,...
阅读 2 分钟
C++ 算法函数 copy_n() C++ 算法 copy_n() 函数指定要复制到新容器中的元素数量。该函数用于将容器 [first,last) 的 n 个元素复制到从 result 开始的不同容器中。语法模板<class InputIterator, class Size, class OutputIterator> OutputIterator copy_n(InputIterator first, Size...
阅读1分钟
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++ 算法 partition() C++ 算法 partition() 函数用于根据其参数中提到的给定谓词(条件)对元素进行分区。如果容器被分区,则此函数返回 true,否则返回 false。语法模板 <class BidirectionalIterator, class UnaryPredicate> BidirectionalIterator partition (BidirectionalIterator first, BidirectionalIterator last, UnaryPredicate...
5 分钟阅读
C++ 算法函数 find_if_not() C++ 算法 find_if_not() 函数返回范围内谓词值为 false 的第一个元素的值,否则返回范围的最后一个元素。语法模板 <class InputIterator, class UnaryPredicate> InputIterator find_if_not (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first: 它指定了...
阅读 2 分钟
C++ 算法函数 search() C++ 算法 search() 函数在范围 [first1, last1) 中搜索由范围 [first2, last2) 定义的子序列的出现,并返回指向第一个元素的迭代器。如果子序列不存在,则返回指向 last1 的迭代器...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India