List in C++ Standard Template Library (STL)

Lists are sequence containers that allow non-contiguous memory allocation. As compared to vector, list has slow traversal, but once a position has been found, insertion and deletion are quick. Normally, when we say a List, we talk about doubly linked list. For implementing a singly linked list, we use forward list.

 

Below is the program to show the working of some functions of List:

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
#include <list>
#include <iterator>
using namespace std;
  
//function for printing the elements in a list
void showlist(list <int> g)
{
    list <int> :: iterator it;
    for(it = g.begin(); it != g.end(); ++it)
        cout << '\t' << *it;
    cout << '\n';
}
  
int main()
{
  
    list <int> gqlist1, gqlist2;
  
  
    for (int i = 0; i < 10; ++i)
    {
        gqlist1.push_back(i * 2);
        gqlist2.push_front(i * 3);
    }
    cout << "\nList 1 (gqlist1) is : ";
    showlist(gqlist1);
  
    cout << "\nList 2 (gqlist2) is : ";
    showlist(gqlist2);
  
    cout << "\ngqlist1.front() : " << gqlist1.front();
    cout << "\ngqlist1.back() : " << gqlist1.back();
  
    cout << "\ngqlist1.pop_front() : ";
    gqlist1.pop_front();
    showlist(gqlist1);
  
    cout << "\ngqlist2.pop_back() : ";
    gqlist2.pop_back();
    showlist(gqlist2);
  
    cout << "\ngqlist1.reverse() : ";
    gqlist1.reverse();
    showlist(gqlist1);
  
    cout << "\ngqlist2.sort(): ";
    gqlist2.sort();
    showlist(gqlist2);
  
    return 0;
  
}

chevron_right


The output of the above program is :

List 1 (gqlist1) is :     0    2    4    6    
8    10    12    14    16    18

List 2 (gqlist2) is :     27    24    21    18    
15    12    9    6    3    0

gqlist1.front() : 0
gqlist1.back() : 18
gqlist1.pop_front() :     2    4    6    8    
10    12    14    16    18

gqlist2.pop_back() :     27    24    21    18    
15    12    9    6    3

gqlist1.reverse() :     18    16    14    12    
10    8    6    4    2

gqlist2.sort():     3    6    9    12    
15    18    21    24    27

  



Functions used with List:

  • front() – Returns the value of the first element in the list.
  • back() – Returns the value of the last element in the list .
  • push_front(g) – Adds a new element ‘g’ at the beginning of the list .
  • push_back(g) – Adds a new element ‘g’ at the end of the list.
  • pop_front() – Removes the first element of the list, and reduces size of the list by 1.
  • pop_back() – Removes the last element of the list, and reduces size of the list by 1
  • list::begin() and list::end() in C++ STLbegin() function returns an iterator pointing to the first element of the list
  • end() end() function returns an iterator pointing to the theoretical last element which follows the last element.
  • list rbegin() and rend() function in C++ STLrbegin() returns a reverse iterator which points to the last element of the list. rend() returns a reverse iterator which points to the position before the beginning of the list.
  • list cbegin() and cend() function in C++ STLcbegin() returns a constant random access iterator which points to the beginning of the list. cend() returns a constant random access iterator which points to the end of the list.
  • list crbegin() and crend() function in C++ STLcrbegin() returns a constant reverse iterator which points to the last element of the list i.e reversed beginning of container. crend() returns a constant reverse iterator which points to the theoretical element preceding the first element in the list i.e. the reverse end of the list.
  • empty() – Returns whether the list is empty(1) or not(0).
  • insert() – Inserts new elements in the list before the element at a specified position.
  • erase() – Removes a single element or a range of elements from the list.
  • assign() – Assigns new elements to list by replacing current elements and resizes the list.
  • remove() – Removes all the elements from the list, which are equal to given element.
  • list::remove_if() in C++ STL– Used to remove all the values from the list that correspond true to the predicate or condition given as parameter to the function.
  • reverse() – Reverses the list.
  • size() – Returns the number of elements in the list.
  • list resize()function in C++ STL– Used to resize a list container.
  • sort() – Sorts the list in increasing order.
  • list max_size() function in C++ STL– Returns the maximum number of elements a list container can hold.
  • list unique() in C++ STL– Removes all duplicate consecutive elements from the list.
  • list::emplace_front() and list::emplace_back() in C++ STLemplace_front() function is used to insert a new element into the list container, the new element is added to the beginning of the list. emplace_back() function is used to insert a new element into the list container, the new element is added to the end of the list.
  • list::clear() in C++ STLclear() function is used to remove all the elements of the list container, thus making it size 0.
  • list::operator= in C++ STL– This operator is used to assign new contents to the container by replacing the existing contents.
  • list::swap() in C++ STL– This function is used to swap the contents of one list with another list of same type and size.
  • list splice() function in C++ STL– Used to transfer elements from one list to another.
  • list merge() function in C++ STL– Merges two sorted lists into one
  • list emplace() function in C++ STL– Extends list by inserting new element at a given position.

Recent Articles on C++ list

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

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :


48


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.