forward_list::emplace_front() en C++STL

La lista de reenvío en STL implementa una lista enlazada individualmente. Introducida a partir de C++ 11, la lista de reenvío es más útil que otros contenedores para las operaciones de inserción, eliminación y movimiento (como ordenar) y permite la inserción y eliminación constante de elementos en el tiempo. Se diferencia de la lista por el hecho de que la lista de reenvío realiza un seguimiento de la ubicación solo del siguiente elemento, mientras que la lista realiza un seguimiento de los elementos siguientes y anteriores.

adelante_lista::emplace_front()

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

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

Ejemplos:

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

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

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

Producción:

6 5 4 3 2 1
// STRING FORWARD LIST EXAMPLE
// CPP program to illustrate
// Implementation of emplace() function
#include <forward_list>
#include <iostream>
#include <string>
using namespace std;
  
int main() {
  forward_list<string> myflist;
  myflist.emplace_front("Geeksforgeeks");
  myflist.emplace_front("is");
  myflist.emplace_front("This");
  // forward list becomes This, is, Geeksforgeeks
  
  // printing the forward list
  for (auto it = myflist.begin(); it != myflist.end(); ++it)
    cout << ' ' << *it;
  
  return 0;
}

Producción:

This is Geeksforgeeks
// CHARACTER FORWARD LIST EXAMPLE
// CPP program to illustrate
// Implementation of emplace() function
#include <forward_list>
#include <iostream>
using namespace std;
  
int main() {
  forward_list<char> myflist;
  myflist.emplace_front('z');
  myflist.emplace_front('y');
  myflist.emplace_front('x');
  myflist.emplace_front('b');
  myflist.emplace_front('a');
  // forward list becomes a, b, x, y, z
  
  // printing the forward list
  for (auto it = myflist.begin(); it != myflist.end(); ++it)
    cout << ' ' << *it;
  
  return 0;
}

Producción:

a b x y z

Complejidad de tiempo : O(1)

Aplicación: ingrese una lista de reenvío vacía con los siguientes números y ordene usando la función emplace_front() y ordene la lista de reenvío dada.

Input :  7, 89, 45, 6, 24, 58, 43
Output : 6, 7, 24, 43, 45, 58, 89
// CPP program to illustrate
// application Of emplace_front() function
#include <forward_list>
#include <iostream>
using namespace std;
  
int main() {
  forward_list<int> myforwardlist{};
  myforwardlist.emplace_front(43);
  myforwardlist.emplace_front(58);
  myforwardlist.emplace_front(24);
  myforwardlist.emplace_front(6);
  myforwardlist.emplace_front(45);
  myforwardlist.emplace_front(89);
  myforwardlist.emplace_front(7);
  
  // Forward list becomes
  // 7, 89, 45, 6, 24, 58, 43
  
  // Sorting function
  myforwardlist.sort();
  
  for (auto it = myforwardlist.begin(); it != myforwardlist.end(); ++it)
    cout << ' ' << *it;
}

Producción

6 7 24 43 45 58 89

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 *