forward_list::splice_after() en C++ STL

forward_list::splice_after() es una función incorporada en CPP STL que transfiere los elementos en el rango de primero+1 a último de una lista de reenvío determinada a otra lista de reenvío. Los elementos se insertan después del elemento al que apunta la posición en el parámetro. Sintaxis:

forwardlist1_name.splice_after(position iterator, forwardlist2_name,
                                    first iterator, last iterator) 

Parámetros: La función acepta cuatro parámetros que se especifican a continuación:

  • position : especifica la posición en forward_list después de la cual se insertarán los nuevos elementos.
  • forwardlist2_name : especifica la lista desde la que se insertarán los elementos.
  • first : especifica el iterador después del cual se realizará la inserción.
  • last : especifica el iterador hasta el cual se debe realizar la inserción.

Valor de retorno: La función no tiene valor de retorno. El siguiente programa demuestra la función anterior: Programa 1: 

CPP

// C++ program to illustrate
// splice_after() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    // initialising the forward lists
    forward_list<int> list1 = { 10, 20, 30, 40 };
    forward_list<int> list2 = { 4, 9 };
 
    // splice_after operation performed
    // all elements except the first element in list1 is
    // inserted in list 2 between 4 and 9
    list2.splice_after(list2.begin(), list1,
                list1.begin(), list1.end());
 
    cout << "Elements are: " << endl;
 
    // loop to print the elements of second list
    for (auto it = list2.begin(); it != list2.end(); ++it)
        cout << *it << " ";
 
    return 0;
}
Producción:

Elements are: 
4 20 30 40 9

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Programa 2: 

CPP

// C++ program to illustrate
// splice_after() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    // initialising the forward lists
    forward_list<int> list1 = { 10, 20, 30, 40 };
    forward_list<int> list2 = { 4, 9 };
 
    // splice_after operation performed
    // all elements of list1 are inserted
    // in list2 between 4 and 9
    list2.splice_after(list2.begin(), list1,
        list1.before_begin(), list1.end());
 
    cout << "Elements are: " << endl;
 
    // loop to print the elements of second list
    for (auto it = list2.begin(); it != list2.end(); ++it)
        cout << *it << " ";
 
    return 0;
}
Producción:

Elements are: 
4 10 20 30 40 9

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Publicación traducida automáticamente

Artículo escrito por Twinkl Bajaj 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 *