Skip to content
Related Articles

Related Articles

Improve Article
forward_list merge() in C++ STL
  • Difficulty Level : Basic
  • Last Updated : 31 Aug, 2018

forward_list::merge() is an inbuilt function in C++ STL which merges two sorted forward_lists into one.
The merge() function can be used in two ways:

  1. Merge two forward lists that are sorted in ascending order into one.
  2. Merge two forward lists into one using a comparison function.

Syntax:

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

Parameters: The function accepts two parameters which are specified as below:

  1. forwardlist_name2 – Another forward list of the same type which is to be merged
  2. comp – A comparison function which should return true or false.

Return value: The function does not return anything.
Below programs illustrate the above function:
Program 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 };
  
    // 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;
}
Output:
List contains following elements
10 12 20 25 30 31 41


Program 2:




#include <bits/stdc++.h>
using namespace std;
  
// comparison function
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 };
  
    // 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;
}
Output:
List contains following elements
41 31 30 25 20 12 10
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :