📜  C++ STL中的forward_list merge()

📅  最后修改于: 2021-05-30 09:44:34             🧑  作者: Mango

forward_list :: merge()是C++ STL中的内置函数,它将两个已排序的forward_list合并为一个。
merge()函数可以通过两种方式使用:

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

句法:

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

参数:该函数接受两个指定如下的参数:

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

返回值:该函数不返回任何内容。
下面的程序说明了上述函数:
程序1:

// CPP program to illustrate the
// forward_list::merge() function
#include 
using namespace std;
  
int main()
{
    forward_list fl1 = { 12, 25, 31, 41 };
    forward_list fl2 = { 10, 20, 30 };
  
    // merge two forward list
    fl1.merge(fl2);
  
    // print the contents of the 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 
using namespace std;
  
// comparison function
bool cmp_fun(int a, int b)
{
    return a > b;
}
  
int main()
{
    forward_list fl1 = { 41, 31, 25, 12 };
    forward_list fl2 = { 30, 20, 10 };
  
    // merge two forward list
    fl1.merge(fl2, cmp_fun);
  
    // print the contents of the 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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”