list::emplace_front() y list::emplace_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::emplace_front()

Esta función se usa para insertar un nuevo elemento en el contenedor de la lista, el nuevo elemento se agrega al principio de la lista. Sintaxis:

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

Ejemplos:

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

Input  : mylist{};
         mylist.emplace_front(4);
Output : mylist = 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

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

Producción:

6 5 4 3 2 1

Complejidad de tiempo : O(1)

lista::emplace_back()

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

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

Ejemplos:

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

Input  : mylist{};
         mylist.emplace_back(4);
Output : mylist = 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

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

Producción:

1 2 3 4 5 6

Complejidad de tiempo : O(1)

Veamos las diferencias en forma tabular -:

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

Su sintaxis es -:

emplazar_frente();

Su sintaxis es -:

 emplace_back();

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. Su validez de iterador no cambia. Su validez de iterador no cambia.

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 *