We have discussed List and some of its functions in the following article:
Some more useful functions are discussed in this article
1. emplace(position, value) :- This function is used to insert an element at the position specified.
2. emplace_back(value) :- This function adds value at end of list. It is different from push_back() by the fact that it directly creates element at position whereas push_back() first makes a temporary copy and copies from there. emplace_back() is faster in implementation than push_back() in most situations.
3. emplace_front :- This function adds value at beginning of list. It is different from push_front() by the fact that it directly creates element at position whereas push_front() first makes a temporary copy and copies from there. emplace_front() is faster in implementation than push_front() in most situations.
// C++ code to demonstrate the working of // emplace(), emplace_front() and emplace_back() #include<iostream> #include<list> // for list functions using namespace std; int main() { // Declaring a list list< int > gqlist; // Initialising list iterator list< int >::iterator it= gqlist.begin(); // Entering list element using emplace_back() for ( int i=1; i<=5; i++) gqlist.emplace_back(i); // Displaying list elements cout << "List after emplace_back operation is : " ; for ( int &x : gqlist) cout << x << " " ; cout << endl; // Entering list element using emplace_front() for ( int i=10; i<=50; i+=10) gqlist.emplace_front(i); // Displaying list elements cout << "List after emplace_front operation is : " ; for ( int &x : gqlist) cout << x << " " ; cout << endl; // using advance() to advance iterator position advance(it,2); // inserting element at 2nd position using emplace() gqlist.emplace(it,100); // Displaying list elements cout << "List after emplace operation is : " ; for ( int &x : gqlist) cout << x << " " ; cout << endl; return 0; } |
Output:
List after emplace_back operation is : 1 2 3 4 5 List after emplace_front operation is : 50 40 30 20 10 1 2 3 4 5 List after emplace operation is : 50 100 40 30 20 10 1 2 3 4 5
4. merge(list2) :- This function is used to merge list2 with list1. If both the lists are in sorted order, then the resulting list is also sorted.
5. remove_if(condition) :- This function removes the element from list on the basis of condition given in its argument.
// C++ code to demonstrate the working of // merge() and remove_if() #include<iostream> #include<list> // for list functions using namespace std; int main() { // Initializing list1 list< int > gqlist1 = {1, 2, 3}; // Initializing list2 list< int > gqlist2 = {2, 4, 6}; // using merge() to merge list1 with list2 gqlist1.merge(gqlist2); // Displaying list elements cout << "list1 after merge operation is : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl; // using remove_if() to remove odd elements // removes 1 and 3 gqlist1.remove_if([]( int x){ return x%2!=0;}); // Displaying list elements cout << "list1 after remove_if operation is : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl; return 0; } |
Output:
list1 after merge operation is : 1 2 2 3 4 6 list1 after remove_if operation is : 2 2 4 6
6. unique() :- This function is used to delete the repeated occurrences of the number. List has to be sorted for this function to get executed.
7. splice(position, list2) :- This function is used to transfer elements from one list into another.
// C++ code to demonstrate the working of // unique() and splice() #include<iostream> #include<list> // for list functions using namespace std; int main() { // Initializing list1 list< int > gqlist1 = {1, 1, 1, 2, 2, 3, 3, 4}; // Initializing list2 list< int > gqlist2 = {2, 4, 6}; // Initializing list1 iterator list< int >::iterator it = gqlist1.begin(); // using advance() to increment iterator position advance(it, 3); // Displaying list elements cout << "list1 before unique operation is : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl; // using unique() to remove repeating elements gqlist1.unique(); // Displaying list elements cout << "list1 after unique operation is : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl << endl; // using splice() to splice list2 in list1 at position it // inserts list2 after 2nd position gqlist1.splice(it, gqlist2); // Displaying list elements cout << "list1 after splice operation is : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl; return 0; } |
Output:
list1 before unique operation is : 1 1 1 2 2 3 3 4 list1 after unique operation is : 1 2 3 4 list1 after splice operation is : 1 2 4 6 2 3 4
8. swap(list2) :- This function is used to swap one list element with other.
// C++ code to demonstrate the working of // swap() #include<iostream> #include<list> // for list functions using namespace std; int main() { // Initializing list1 list< int > gqlist1 = {1, 2, 3, 4}; // Initializing list1 list< int > gqlist2 = {2, 4, 6}; // Displaying list before swapping cout << "The contents of 1st list " "before swapping are : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl; cout << "The contents of 2nd list " "before swapping are : " ; for ( int &x : gqlist2) cout << x << " " ; cout << endl; // Use of swap() to swap the list gqlist1.swap(gqlist2); // Displaying list after swapping cout << "The contents of 1st list " "after swapping are : " ; for ( int &x : gqlist1) cout << x << " " ; cout << endl; cout << "The contents of 2nd list " "after swapping are : " ; for ( int &x : gqlist2) cout << x << " " ; cout << endl; return 0; } |
Output:
The contents of 1st list before swapping are : 1 2 3 4 The contents of 2nd list before swapping are : 2 4 6 The contents of 1st list after swapping are : 2 4 6 The contents of 2nd list after swapping are : 1 2 3 4
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
0 Comments