C++ STL中的forward_list merge()

C++ STL中的forward_list merge()

forward_list::merge() 是C++ STL中一种内置函数,它将两个已排序的forward_lists合并成一个。

merge()函数有两种用法:

  1. 将两个按升序排列的单向列表合并为一个。
  2. 使用比较函数合并两个单向列表为一个。

语法:

forwardlist_name1.merge(forward_list& forwardlist_name2)
                  or
forwardlist_name1.merge(forward_list& forwardlist_name2, Compare comp)

参数: 该函数接受两个参数,如下所示:

  1. forwardlist_name2 – 另一个要合并的相同类型的forward_list
  2. comp – 应返回true或false的比较函数。

返回值: 该函数不返回任何东西。

下面的程序说明了以上函数:

程序1:

// CPP program to illustrate the
// forward_list::merge() function
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    forward_list<int> fl1 = { 12, 25, 31, 41 };
    forward_list<int> fl2 = { 10, 20, 30 };
  
    // 合并两个forward_list
    fl1.merge(fl2);
  
    // 输出forward_list的内容
    cout << "List contains following elements" << endl;
    for (auto it = fl1.begin(); it != fl1.end(); ++it)
        cout << *it << " ";
  
    return 0;
}
List contains following elements
10 12 20 25 30 31 41

**程序2: **

#include <bits/stdc++.h>
using namespace std;
  
// 比较函数
bool cmp_fun(int a, int b)
{
    return a > b;
}
  
int main()
{
    forward_list<int> fl1 = { 41, 31, 25, 12 };
    forward_list<int> fl2 = { 30, 20, 10 };
  
    // 合并两个forward_list
    fl1.merge(fl2, cmp_fun);
  
    // 输出forward_list的内容
    cout << "List contains following elements" << endl;
    for (auto it = fl1.begin(); it != fl1.end(); ++it)
        cout << *it << " ";
  
    return 0;
}
List contains following elements
41 31 30 25 20 12 10

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程