List

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

// 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;

Output
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.
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;

Output
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.

std::list Member Functions


Functions Definition

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.

Removes the first element of the list, and reduces the size of the
pop_front()
list by 1.

Removes the last element of the list, and reduces the size of the
pop_back()
list by 1.

begin() function returns an iterator pointing to the first element


list::begin()
of the list.

end() function returns an iterator pointing to the theoretical last


list::end()
element which follows the last element.

rbegin() returns a reverse iterator which points to the last


list rbegin() and rend() element of the list. rend() returns a reverse iterator that points to
the position before the beginning of the list.

cbegin() returns a constant random access iterator which points


list cbegin() and cend() to the beginning of the list. cend() returns a constant random
access iterator which points to the end of the list.

crbegin() returns a constant reverse iterator which points to the


last element of the list i.e reversed beginning of the container.
list crbegin() and crend() 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).


Functions Definition

Inserts new elements in the list before the element at a specified


insert()
position.

erase() Removes a single element or a range of elements from the list.

Assigns new elements to the list by replacing current elements


assign()
and resizing the list.

Removes all the elements from the list, which are equal to a
remove()
given element.

Used to remove all the values from the list that correspond true
list::remove_if() to the predicate or condition given as a parameter to the
function.

reverse() Reverses the list.

size() Returns the number of elements in the list.

list resize() Used to resize a list container.

sort() Sorts the list in increasing order.

Returns the maximum number of elements a list container can


list max_size()
hold.

list unique() Removes all duplicate consecutive elements from the list.

emplace_front() function is used to insert a new element into


the list container, and the new element is added to the beginning
list::emplace_front() and
of the list. emplace_back() function is used to insert a new
list::emplace_back()
element into the list container, and the new element is added to
the end of the list.

list::clear() clear() function is used to remove all the elements of the list
Functions Definition

container, thus making it size 0.

This operator is used to assign new contents to the container by


list::operator=
replacing the existing contents.

This function is used to swap the contents of one list with


list::swap()
another list of the same type and size.

list splice() Used to transfer elements from one list to another.

list merge() Merges two sorted lists into one.

list emplace() Extends the list by inserting a new element at a given position.

Points to Remember about List Container


 It is generally implemented using a dynamic doubly linked list with traversal
in both directions.
 Faster insert and delete operation as compared to arrays and vectors.
 It provides only sequential access. Random Access to any middle element is
not possible
 It is defined as a template so it is able to hold any data type.
 It operates as an unsorted list would, which implies that by default, the list’s
order is not preserved. However, there are techniques for sorting.

You might also like