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 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.
Please Login to comment...