Some Basic Operations on std::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() – Adds a new element ‘g’ at the beginning of the list.
- push_back() – Adds a new element ‘g’ at the end of the list.
- pop_front() – Removes the first element of the list, and reduces the size of the list by 1.
- pop_back() – Removes the last element of the list, and reduces the size of the list by 1.
- insert() – Inserts new elements in the list before the element at a specified position.
- size() – Returns the number of elements in the list.
- begin() – begin() 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.
The below example demonstrates the general use of list containers and their basic functions in C++.
Example:
C++
// C++ program to demonstrate the implementation of List #include <iostream> #include <iterator> #include <list> 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' ; } // Driver Code 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; } |
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
The above example only demonstrates the general usage of the std::list and its member functions. The below table provides all the member functions of std::list class and links to their detailed explanation.
List in C++ Standard Template Library (STL)
Lists are sequence containers that allow non-contiguous memory allocation. As compared to the vector, the list has slow traversal, but once a position has been found, insertion and deletion are quick (constant time). Normally, when we say a List, we talk about a doubly linked list. For implementing a singly linked list, we use a forward_list.
std::list is the class of the List container. It is the part of C++ Standard Template Library (STL) and is defined inside <list> header file.
Syntax:
std::list <data-type> name_of_list;
Example:
C++
// C++ program to demonstrate the use of list containers #include <iostream> #include <list> using namespace std; int main() { // defining list list< int > gqlist{12,45,8,6}; for ( auto i : gqlist) { cout << i << ' ' ; } return 0; } |
12 45 8 6
In the above example, we created a std::list object named gqlist and initialized it using an initializer_list. We can initialize the std::list objects using many different ways mentioned here.