Skip to content
Related Articles

Related Articles

Forward List in C++ | Set 2 (Manipulating Functions)

Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 21 Jun, 2022
Improve Article
Save Article

Forward List in C++ | Set 1 (Introduction and Important Functions) More functions are discussed in this article Some of the operations other than insertions and deletions that can be used in forward lists are as follows : 

1. merge() :- This function is used to merge one forward list with other. If both the lists are sorted then the resultant list returned is also sorted. 

2. operator “=” :- This operator copies one forward list into other. The copy made in this case is deep copy. 

CPP




// C++ code to demonstrate the working of
// merge() and operator=
#include<iostream>
#include<forward_list>
using namespace std;
 
int main()
{    
    // Initializing 1st forward list
    forward_list<int> flist1 = {1, 2, 3};
     
    // Declaring 2nd forward list
    forward_list<int> flist2;
     
    // Creating deep copy using "="
    flist2 = flist1;
     
    // Displaying flist2
    cout << "The contents of 2nd forward list"
            " after copy are : ";
    for (int &x : flist2)
        cout << x << " ";
    cout << endl;
     
    // Using merge() to merge both list in 1
    flist1.merge(flist2);
     
    // Displaying merged forward list
    // Prints sorted list
    cout << "The contents of forward list "
            "after merge are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
     
    return 0;    
}

Output:

The contents of 2nd forward list after copy are : 1 2 3 
The contents of forward list after merge are : 1 1 2 2 3 3 

Time Complexity: O(1)

Auxiliary Space: O(1)
 3. sort() :- This function is used to sort the forward list. 

4. unique() :- This function deletes the multiple occurrences of a number and returns a forward list with unique elements. The forward list should be sorted for this function to execute successfully. 

CPP




// C++ code to demonstrate the working of
// sort() and unique()
#include<iostream>
#include<forward_list> // for sort() and unique()
using namespace std;
 
int main()
{
    // Initializing 1st forward list
    forward_list<int> flist1 = {1, 2, 3, 2, 3, 3, 1};
 
    // Sorting the forward list using sort()
    flist1.sort();
 
    // Displaying sorted forward list
    cout << "The contents of forward list after "
            "sorting are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
 
    // Use of unique() to remove repeated occurrences
    flist1.unique();
 
    // Displaying forward list after using unique()
    cout << "The contents of forward list after "
            "unique operation are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
 
    return 0;
}

Output:

The contents of forward list after sorting are : 1 1 2 2 3 3 3 
The contents of forward list after unique operation are : 1 2 3 

Time Complexity: O(1)

Auxiliary Space: O(1)
 

5. reverse() :- This function is used to reverse the forward list.

6. swap() :- This function swaps the content of one forward list with other. 

CPP




// C++ code to demonstrate the working of
// reverse() and swap()
#include<iostream>
#include<forward_list> // for reverse() and swap()
using namespace std;
int main()
{
    // Initializing 1st forward list
    forward_list<int> flist1 = {1, 2, 3,};
 
    // Initializing 2nd forward list
    forward_list<int> flist2 = {4, 5, 6};
 
    // Using reverse() to reverse 1st forward list
    flist1.reverse();
 
    // Displaying reversed forward list
    cout << "The contents of forward list after"
            " reversing are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl << endl;
 
    // Displaying forward list before swapping
    cout << "The contents of 1st forward list "
            "before swapping are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
    cout << "The contents of 2nd forward list "
            "before swapping are : ";
    for (int &x : flist2)
        cout << x << " ";
    cout << endl;
 
    // Use of swap() to swap the list
    flist1.swap(flist2);
 
    // Displaying forward list after swapping
    cout << "The contents of 1st forward list "
            "after swapping are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
 
    cout << "The contents of 2nd forward list "
            "after swapping are : ";
    for (int &x : flist2)
        cout << x << " ";
    cout << endl;
 
    return 0;
}

Output:

The contents of forward list after reversing are : 3 2 1 

The contents of 1st forward list before swapping are : 3 2 1 
The contents of 2nd forward list before swapping are : 4 5 6 
The contents of 1st forward list after swapping are : 4 5 6 
The contents of 2nd forward list after swapping are : 3 2 1 

Time Complexity: O(1)

Auxiliary Space: O(1)
 

7. clear() :- This function clears the contents of forward list. After this function, the forward list becomes empty.

 8. empty() :- This function returns true if the list is empty otherwise false. 

CPP




// C++ code to demonstrate the working of
// clear() and empty()
#include<iostream>
#include<forward_list> // for clear() and empty()
using namespace std;
int main()
{    
    // Initializing forward list
    forward_list<int> flist1 = {1, 2, 3,};
     
    // Displaying forward list before clearing
    cout << "The contents of forward list are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
     
    // Using clear() to clear the forward list
    flist1.clear();
     
    // Displaying list after clear() performed
    cout << "The contents of forward list after "
        << "clearing are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
     
    // Checking if list is empty
    flist1.empty() ? cout << "Forward list is empty" :
                    cout << "Forward list is not empty";
     
    return 0;    
}

Output:

The contents of forward list  are : 1 2 3 
The contents of forward list after clearing are : 
Forward list is empty

Time Complexity: O(1)

Auxiliary Space: O(1)
Recent articles on forward_list This article is contributed by Manjeet Singh .If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!