Tutorialspoint.dev

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

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 resulted list returned is also sorted.

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



// 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 

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.

// 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 

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

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

// 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 

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.

// 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 reversed forward list
     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



Recent articles on forward_list

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter