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
This article is contributed by Manjeet Singh .If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@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.
Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.