Data Structures and Algorithms | C++ STLs

Data Structures and Algorithms | C++ STLs

In this article, we will be looking at a brief introduction to Data Structures and Algorithms | C++ STLs and some very important STLs like Pairs, Vectors, and Lists.

Lists

We use the header file <list> to use the functionalities of an STL list container class. The syntax for declaring a list is given below:

Syntax: list<data_type> list_name;

A list has many methods for performing different types of operations. A few of the methods are listed below:

front() – Returns the value of the first element in the list.

back() – Returns the value of the last element in the list.

push_front(i) – Adds the new element ‘i’ at the beginning of the list.

push_back(i) – Adds the new element ‘i’ 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.

List_name.begin() – Returns an iterator pointing to the first element of the list.

List_name.end() – Returns an iterator pointing to the theoretical last element which follows the last element of the list.

List_name.rbegin() – Returns the reverse iterator pointing to the last element of the list.

List_name.rend() – Returns the reverse iterator pointing to the theoretically first element in the list which is before the actual first element of the list.

List_name.cbegin() – Returns a constant iterator pointing to the first element of the list i.e., the value pointed at cannot be changed.

See also  Top 10 best countries where Software Engineers are in high demand

List_name.cend()  – Returns a constant iterator pointing to the end of the list.

List_name.crbegin() – Returns a constant reverse iterator that points to the last element of the list i.e., reversed beginning of the container.

List_name.crend() – Returns a constant reverse iterator that points to the first element of the list i.e., reversed ending of the container.

empty() – Returns whether or not a list is empty. Returns true if the list is empty if not returns false.

insert(i) – inserts a new element ‘i’ into the list before the element at a specified position.

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

assign(new_list) – Assigns new elements to the list replacing the current elements and resizes the list.

remove(i) – Removes all the elements from the list, which is equal to the given element ‘i’.

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

list_resize() – Used to resize a list container.

sort() – Sorts the list in ascending order.

list_max_size() – Returns the maximum number of elements a list container can hold.

list_unique() – Removes all duplicates consecutive element form the list.

emplace_front() – This function is used to insert a new element into the list and the element is added to the front of the list.

emplace_back() – This function is used to insert a new element into the list and the element is added to the end of the list.

clear() – Removes all the elements from the list and makes the size of the list 0

swap() – This function is used to swap the contents of one list with another list of the same data type.

See also  Data Structures and Algorithms | C++ STLs

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

merge() –  Used to merge two sorted lists into one.

emplace(i) – Inserts a new element at a given position in the list.

Let’s look at an example of using a list.

// CPP program to show 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

Leave a Comment

Your email address will not be published. Required fields are marked *

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

we provide projects, courses, and other stuff for free. in order for running we use Google ads to make revenue. please disable adblocker to support us.