C++ Algorithm merge()2024年8月30日 | 阅读4分钟 C++算法merge()函数用于将两个已排序的范围[first1, last1)和[first2, last2)合并为一个从result开始的已排序范围。 对于第一个版本,使用运算符 < 比较元素,或者对于第二个版本,使用给定的二元比较函数 comp 比较元素。 语法参数first1:一个输入迭代器,指向第一个已排序源序列中要合并的第一个元素。 last:一个输入迭代器,指向第一个已排序源序列中要合并的最后一个元素之后的位置。 first2:一个输入迭代器,指向第二个已排序源序列中要合并的第一个元素。 last2:一个输入迭代器,指向第二个已排序源序列中要合并的最后一个元素之后的位置。 comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回true,否则返回false。它遵循严格的弱排序来对元素进行排序。 val: 用于比较范围内元素的上界值。 result:一个输出迭代器,指向目标范围中的第一个元素,两个源范围将合并成一个单一的已排序范围。 返回值它返回一个迭代器,指向结果序列中最后一个元素之后的位置。 复杂度复杂度是线性的:最多执行(last1-first1) + (last2 - first2)次比较并赋值所有元素。 数据竞争访问范围[first1, last1)和[first2, last2)中的对象。 result和返回值之间的范围内的对象将被更改。 异常如果元素比较或迭代器操作抛出异常,此函数会抛出异常。 请注意,无效参数会导致未定义行为。 示例 1让我们看一个简单的例子来演示merge()的使用 输出 Vector v1 : 1 2 4 5 6 Vector v2 : 10 20 30 40 50 Vector v3 : 1 2 4 5 6 10 20 30 40 50 示例 2让我们看另一个简单的例子,使用运算符<实现merge()函数 输出 The container after merging initial containers is: 1 2 3 4 6 10 20 50 60 70 示例 3让我们看另一个简单的例子,使用比较函数演示merge() 输出 The container after reverse merging initial containers is : 70 60 50 20 10 6 4 3 2 1 示例 4让我们看另一个简单的例子 输出 The original 1st stack: 50 20 10 100 200 The original 2nd stack: 500 2000 5000 1000 10000 The resultant stack of notes is: 10 20 50 100 200 500 1000 2000 5000 10000 下一主题C++ 算法 |
C++ 算法 partial_sort() C++ 算法 partial_sort() 函数用于重新排列范围 [first, last) 中的元素,使得 first 和 middle 之间的元素将被排序,而 middle 和 last 之间的元素将处于未指定顺序。这...
阅读 6 分钟
C++ 算法函数 adjacent_find() C++ Algorithm adjacent_find() 函数在范围 [first, last] 上执行搜索操作,以查找两个连续匹配元素的首次出现。如果找到这样的元素,则返回指向这两个元素中第一个元素的迭代器。否则,返回最后一个...
阅读1分钟
C++算法shuffle() C++算法shuffle()函数通过使用g作为统一随机数生成器,将范围内的元素重新排序,将它们放置在随机位置。语法模板 <class RandomAccessIterator, class URNG> void shuffle (RandomAccessIterator first, RandomAccessIterator last, URNG&& g); 参数first:指向位置的随机访问迭代器...
阅读 2 分钟
C++ 算法 iter_swap() C++ 算法 iter_swap() 交换两个迭代器 a 和 b 所指向的元素。语法模板 <class ForwardIterator1, class ForwardIterator2> void iter_swap (ForwardIterator1 a, ForwardIterator2 b); 参数 a: 要交换值的其中一个前向迭代器。b: 要交换值的第二个前向迭代器...
7 分钟阅读
C++ 算法函数 find_if() C++ Algorithm find_if() 函数返回范围中第一个满足 pred 条件的元素的值,否则返回范围的最后一个元素。语法模板 <class InputIterator, class UnaryPredicate> InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first:它指定...
阅读 2 分钟
C++ 算法 generate() C++ 算法 generate() 函数用于将函数对象生成的值赋给范围中的每个元素。生成器函数由用户定义,并连续调用以赋值数字。语法模板 <class ForwardIterator, class Generator> void...
阅读 4 分钟
介绍:在动态的编程领域,充分利用硬件资源是关键。多线程,即多个线程同时执行,在实现并行性和提升性能方面发挥着至关重要的作用。C++作为一种通用的编程语言,提供了...
7 分钟阅读
C++ 算法 remove_copy_if() C++ 算法 remove_copy_if() 函数用于将范围 [first, last) 中的所有元素复制到从 result 开始的范围,除了那些 pred 返回 true 的元素,而不扰乱剩余元素的顺序。此函数无法更改...
阅读 6 分钟
C++ 算法 unique() C++ Algorithm unique() 函数用于转换序列,使得每个连续的重复元素都成为唯一的元素。第一个版本使用 operator== 比较元素,第二个版本使用给定的二元谓词 pred。语法相等性 (1) 模板 <class...
7 分钟阅读
C++ 算法 transform() C++ 算法 transform() 函数以两种不同的方式使用: 1. 一元操作:- 此方法对范围 [first1, last1] 中的元素执行一元操作 op,并将结果存储在从 result 开始的范围中。此 transform() 将函数应用于范围的每个元素: 2. 二元...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。

我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India