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

Las colas Deque o de doble extremo son contenedores de secuencia con la función de expansión y contracción en ambos extremos. Son similares a los vectores, pero son más eficientes en caso de inserción y eliminación de elementos al final, y también al principio. A diferencia de los vectores, es posible que no se garantice la asignación de almacenamiento contiguo.
 

deque::pop_front()

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

dequename.pop_front()
Parameters :
No value is needed to pass as the parameter.
Result :
Removes the value present at the front 
of the given deque named as dequename

Ejemplos: 
 

Input  :  mydeque = 1, 2, 3
          mydeque.pop_front();
Output :  2, 3

Input  :  mydeque = 3, 4, 1, 7, 3
          mydeque.pop_front();
Output :  4, 1, 7, 3

Errores y excepciones 
 

  1. No-Throw-Garantía: si se lanza una excepción, no hay cambios en el contenedor
  2. Si el deque está vacío, muestra un comportamiento indefinido.

CPP

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

Producción: 
 

2 3

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

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 <deque>
using namespace std;
  
int main()
{
    deque<int> mydeque{}, newdeque{};
    mydeque.push_front(8);
    mydeque.push_front(7);
    mydeque.push_front(6);
    mydeque.push_front(5);
    mydeque.push_front(4);
    mydeque.push_front(3);
    mydeque.push_front(2);
    mydeque.push_front(1);
  
    //Deque becomes 1, 2, 3, 4, 5, 6, 7, 8
  
    while (!mydeque.empty()) {
        newdeque.push_front(mydeque.front());
        mydeque.pop_front();
    }
    for (auto it = newdeque.begin(); it != newdeque.end(); ++it)
        cout << ' ' << *it;
}

Producción: 
 

8 7 6 5 4 3 2 1

Complejidad del tiempo: O(1)

Espacio Auxiliar : O(1)

deque::pop_back()

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

dequename.pop_back()
Parameters :
No value is needed to pass as the parameter.
Result :
Removes the value present at the end or back 
of the given deque named as dequename

Ejemplos: 
 

Input  :  mydeque = 1, 2, 3
          mydeque.pop_back();
Output :  1, 2

Input  :  mydeque = 3, 4, 1, 7, 3
          mydeque.pop_back();
Output :  3, 4, 1, 7

Errores y excepciones 
 

  1. No-Throw-Garantía: si se lanza una excepción, no hay cambios en el contenedor
  2. Si el deque está vacío, muestra un comportamiento indefinido.

CPP

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

Producción: 
 

1 2 3 4

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

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 <deque>
using namespace std;
  
int main()
{
    deque<int> mydeque, newdeque;
    mydeque.push_front(82);
    mydeque.push_front(73);
    mydeque.push_front(64);
    mydeque.push_front(57);
    mydeque.push_front(43);
    mydeque.push_front(39);
    mydeque.push_front(20);
    mydeque.push_front(1);
  
    //Deque becomes 1, 20, 39, 43, 57, 64, 73, 82
  
    while (!mydeque.empty()) {
        newdeque.push_back(mydeque.back());
        mydeque.pop_back();
    }
    for (auto it = newdeque.begin(); it != newdeque.end(); ++it)
        cout << ' ' << *it;
}

Producción: 
 

82 73 64 57 43 39 20 1

 Complejidad del tiempo: O(1)

Espacio Auxiliar : O(1)

Veamos las diferencias en forma tabular -:

  deque::pop_front()  deque::pop_back() 
1. Se utiliza para eliminar el primer elemento en el contenedor deque. Se utiliza para eliminar el último elemento en el contenedor deque
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 valor de retorno. No tiene ningún valor 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 *