list::pop_front() y list::pop_back() en C++ STL

Las listas son contenedores utilizados en C++ para almacenar datos de forma no contigua. Normalmente, las arrays y los vectores son de naturaleza contigua, por lo que las operaciones de inserción y eliminación son más costosas en comparación con la opción de inserción y eliminación en las listas.

lista::pop_front()

La función pop_front() se usa para hacer estallar o eliminar elementos de una lista desde el frente. El valor se elimina de la lista desde el principio y el tamaño del contenedor se reduce en 1. Sintaxis:

listname.pop_front()
Parameters :
No argument is passed as parameter.
Result :
Removes the value present at the front 
of the given list named as listname

Ejemplos:

Input :  list list{1, 2, 3, 4, 5};
         list.pop_front();
Output : 2, 3, 4, 5

Input :  list list{5, 4, 3, 2, 1};
         list.pop_front();
Output : 4, 3, 2, 1

Errores y excepciones

  1. Garantía de no lanzamiento: si se lanza una excepción, no hay cambios en el contenedor.
  2. Si la lista está vacía, muestra un comportamiento indefinido.

CPP

// CPP program to illustrate
// pop_front() function
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    list<int> mylist{ 1, 2, 3, 4, 5 };
    mylist.pop_front();
 
    // list becomes 2, 3, 4, 5
 
    for (auto it = mylist.begin(); it != mylist.end(); ++it)
        cout << ' ' << *it;
}

Producción:

2, 3, 4, 5

Aplicación: Ingrese una lista vacía con los siguientes números y ordene usando la función push_front() e imprima el reverso de la lista.

Input : 1, 2, 3, 4, 5, 6, 7, 8
Output: 8, 7, 6, 5, 4, 3, 2, 1

CPP

// CPP program to illustrate
// application Of pop_front() function
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    list<int> mylist{}, newlist{};
    mylist.push_front(8);
    mylist.push_front(7);
    mylist.push_front(6);
    mylist.push_front(5);
    mylist.push_front(4);
    mylist.push_front(3);
    mylist.push_front(2);
    mylist.push_front(1);
 
    // list becomes 1, 2, 3, 4, 5, 6, 7, 8
 
    while (!mylist.empty()) {
        newlist.push_front(mylist.front());
        mylist.pop_front();
    }
    for (auto it = newlist.begin(); it != newlist.end(); ++it)
        cout << ' ' << *it;
}

Producción:

8, 7, 6, 5, 4, 3, 2, 1
lista::pop_back()

La función pop_back() se usa para hacer estallar o eliminar elementos de una lista desde atrás. El valor se elimina de la lista desde el final y el tamaño del contenedor se reduce en 1. Sintaxis:

listname.pop_back()
Parameters :
No argument is passed as parameter.
Result :
Removes the value present at the end or back 
of the given list named as listname

Ejemplos:

Input :  list list{1, 2, 3, 4, 5};
         list.pop_back();
Output : 1, 2, 3, 4

Input :  list list{5, 4, 3, 2, 1};
         list.pop_back();
Output : 5, 4, 3, 2

Errores y excepciones

  1. Garantía de no lanzamiento: si se lanza una excepción, no hay cambios en el contenedor.
  2. Si la lista está vacía, muestra un comportamiento indefinido.

CPP

// CPP program to illustrate
// pop_back() function
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    list<int> mylist{ 1, 2, 3, 4, 5 };
    mylist.pop_back();
 
    // list becomes 1, 2, 3, 4
 
    for (auto it = mylist.begin(); it != mylist.end(); ++it)
        cout << ' ' << *it;
}

Producción:

1, 2, 3, 4

Aplicación: Ingrese una lista vacía con los siguientes números y ordene usando la función push_front() e imprima el reverso de la lista.

Input : 1, 20, 39, 43, 57, 64, 73, 82
Output: 82, 73, 64, 57, 43, 39, 20, 1

CPP

// CPP program to illustrate
// application Of pop_back() function
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    list<int> mylist{}, newlist{};
    mylist.push_front(82);
    mylist.push_front(73);
    mylist.push_front(64);
    mylist.push_front(57);
    mylist.push_front(43);
    mylist.push_front(39);
    mylist.push_front(20);
    mylist.push_front(1);
 
    // list becomes 1, 20, 39, 43, 57, 64, 73, 82
 
    while (!mylist.empty()) {
        newlist.push_back(mylist.back());
        mylist.pop_back();
    }
    for (auto it = newlist.begin(); it != newlist.end(); ++it)
        cout << ' ' << *it;
}

Producción:

82, 73, 64, 57, 43, 39, 20, 1

Veamos las diferencias en forma tabular -:

  lista::pop_front() lista::pop_back()
1. Se utiliza para eliminar el primer elemento en el contenedor de lista. Se utiliza para eliminar el último elemento en el contenedor de lista
2.

Su sintaxis es -:

 frente_pop();

Su sintaxis es -:

pop_back();

3. No toma ningún parámetro. No toma ningún parámetro.
4. No tiene ningún tipo de retorno. No tiene ningún tipo de retorno.
5. Su complejidad es constante. Su complejidad es constante.

Publicación traducida automáticamente

Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *