deque::emplace_front() y deque::emplace_back() en C++ STL

Las colas Deque o de doble extremo son contenedores de secuencia con la característica 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::emplace_front()

Esta función se utiliza para insertar un nuevo elemento en el contenedor deque, el nuevo elemento se agrega al comienzo de la deque. Sintaxis:

dequename.emplace_front(value)
Parameters :
The element to be inserted into the deque
is passed as the parameter.
Result :
The parameter is added to the
deque at the beginning.

Ejemplos:

Input  : mydeque{1, 2, 3, 4, 5};
         mydeque.emplace_front(6);
Output : mydeque = 6, 1, 2, 3, 4, 5

Input  : mydeque{};
         mydeque.emplace_front(4);
Output : mydeque = 4

Errores y excepciones 1. Tiene una fuerte garantía de excepción, por lo tanto, no se realizan cambios si se lanza una excepción. 2. El parámetro debe ser del mismo tipo que el del contenedor, de lo contrario, se arroja un error. 

CPP

// INTEGER DEQUE EXAMPLE
// CPP program to illustrate
// Implementation of emplace_front() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    deque<int> mydeque;
    mydeque.emplace_front(1);
    mydeque.emplace_front(2);
    mydeque.emplace_front(3);
    mydeque.emplace_front(4);
    mydeque.emplace_front(5);
    mydeque.emplace_front(6);
 
    // deque becomes 6, 5, 4, 3, 2, 1
 
    // printing the deque
    for (auto it = mydeque.begin();
         it != mydeque.end(); ++it)
        cout << ' ' << *it;
 
    return 0;
}

Producción:

6 5 4 3 2 1

CPP

// STRING DEQUE EXAMPLE
// CPP program to illustrate
// Implementation of emplace_front() function
#include <deque>
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    deque<string> mydeque;
    mydeque.emplace_front("portal");
    mydeque.emplace_front("science");
    mydeque.emplace_front("computer");
    mydeque.emplace_front("a");
    mydeque.emplace_front("is");
    mydeque.emplace_front("GEEKSFORGEEKS");
 
    // deque becomes GEEKSFORGEEKS, is, a,
    // computer, science, portal
 
    // printing the deque
    for (auto it = mydeque.begin();
                  it != mydeque.end(); ++it)
        cout << ' ' << *it;
 
    return 0;
}

Producción:

GEEKSFORGEEKS is a computer science portal

Complejidad de tiempo: Aplicación O(1) Dado un deque vacío, agregue números enteros usando la función emplace_front() y luego calcule su tamaño sin usar la función de tamaño().

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

Algoritmo 1. Agregue elementos a la deque usando la función emplace_front() 2. Verifique si la deque está vacía, si no, incremente la variable de contador inicializada como 0 y extraiga el elemento posterior. 3. Repita este paso hasta que el deque se vacíe. 4. Imprime el valor final de la variable. 

CPP

// CPP program to illustrate
// Application of emplace_front() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    // variable declaration
    int count = 0;
 
    // deque declaration
    deque<int> mydeque;
 
    // adding elements to deque
    mydeque.emplace_front(1);
    mydeque.emplace_front(2);
    mydeque.emplace_front(3);
    mydeque.emplace_front(4);
    mydeque.emplace_front(5);
    mydeque.emplace_front(6);
 
    // counting elements in deque
    while (!mydeque.empty()) {
        count++;
        mydeque.pop_back();
    }
    cout << count;
    return 0;
}

Producción :

6
deque::emplace_back()

Esta función se usa para insertar un nuevo elemento en el contenedor deque, el nuevo elemento se agrega al final del deque. Sintaxis:

dequename.emplace_back(value)
Parameters :
The element to be inserted into the deque
is passed as the parameter.
Result :
The parameter is added to the
deque at the end.

Ejemplos:

Input  : mydeque{1, 2, 3, 4, 5};
         mydeque.emplace_back(6);
Output : mydeque = 1, 2, 3, 4, 5, 6

Input  : mydeque{};
         mydeque.emplace_back(4);
Output : mydeque = 4

Errores y excepciones 1. Tiene una fuerte garantía de excepción, por lo tanto, no se realizan cambios si se lanza una excepción. 2. El parámetro debe ser del mismo tipo que el del contenedor; de lo contrario, se genera un error. 

CPP

// INTEGER DEQUE EXAMPLE
// CPP program to illustrate
// Implementation of emplace_back() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    deque<int> mydeque;
    mydeque.emplace_back(1);
    mydeque.emplace_back(2);
    mydeque.emplace_back(3);
    mydeque.emplace_back(4);
    mydeque.emplace_back(5);
    mydeque.emplace_back(6);
    // deque becomes 1, 2, 3, 4, 5, 6
 
    // printing the deque
    for (auto it = mydeque.begin();
             it != mydeque.end(); ++it)
        cout << ' ' << *it;
 
    return 0;
}

Producción:

1 2 3 4 5 6

CPP

// STRING DEQUE EXAMPLE
// CPP program to illustrate
// Implementation of emplace_back() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    deque<string> mydeque;
    mydeque.emplace_back("Hi");
    mydeque.emplace_back("this");
    mydeque.emplace_back("is");
    mydeque.emplace_back("geeksforgeeks");
    // deque becomes Hi this is geeksforgeeks
 
    // printing the deque
    for (auto it = mydeque.begin();
                it != mydeque.end(); ++it)
        cout << ' ' << *it;
 
    return 0;
}

Producción:

Hi this is geeksforgeeks

Complejidad de tiempo: Aplicación O(1) Dado un deque vacío, agregue números enteros usando la función emplace_front() y luego calcule la suma de los elementos.

Input  : 4, 5, 9, 2, 6
Output : 26

Algoritmo 1. Agregue elementos a la deque usando la función emplace_back() 2. Verifique si la deque está vacía, si no, agregue el valor posterior a la variable de suma inicializada como 0, y extraiga el elemento posterior. 3. Repita este paso hasta que el deque se vacíe. 4. Imprime el valor final de la variable. 

CPP

// CPP program to illustrate
// Application of emplace_back() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    // variable declaration
    int sum = 0;
 
    // deque declaration
    deque<int> mydeque;
 
    // adding elements to deque
    mydeque.emplace_back(4);
    mydeque.emplace_back(5);
    mydeque.emplace_back(9);
    mydeque.emplace_back(2);
    mydeque.emplace_back(6);
 
    // counting sum of elements in deque
    while (!mydeque.empty()) {
        sum = sum + mydeque.back();
        mydeque.pop_back();
    }
    cout << sum;
    return 0;
}

Producción :

6

Veamos las diferencias en forma tabular -:

  deque::emplace_front()  deque::emplace_back() 
1. Se utiliza para insertar un nuevo elemento al principio del deque. Se utiliza para insertar un nuevo elemento al final de la deque
2.

Su sintaxis es -:

emplace_front (args&&…args);

Su sintaxis es -:

emplace_back (argumentos&&… argumentos);

3. No tiene ningún valor de retorno. No tiene ningún valor de retorno.
4. Su complejidad es constante. Su complejidad es constante.
5. Está presente en el archivo de encabezado <deque> Está presente en el archivo de encabezado <deque>

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 *