Lista de reenvío en C++ | Conjunto 2 (Funciones de manipulación)

Lista de reenvío en C++ | Conjunto 1 (Introducción y funciones importantes) En este artículo se analizan más funciones. Algunas de las operaciones distintas de las inserciones y eliminaciones que se pueden usar en las listas de reenvío son las siguientes: 

1. fusionar() : – Esta función se usa para fusionar una lista hacia adelante con otra. Si ambas listas están ordenadas, la lista resultante devuelta también está ordenada. 

2. operador “=” :- Este operador copia una lista de reenvío en otra. La copia realizada en este caso es copia profunda. 

CPP

// C++ code to demonstrate the working of
// merge() and operator=
#include<iostream>
#include<forward_list>
using namespace std;
 
int main()
{    
    // Initializing 1st forward list
    forward_list<int> flist1 = {1, 2, 3};
     
    // Declaring 2nd forward list
    forward_list<int> flist2;
     
    // Creating deep copy using "="
    flist2 = flist1;
     
    // Displaying flist2
    cout << "The contents of 2nd forward list"
            " after copy are : ";
    for (int &x : flist2)
        cout << x << " ";
    cout << endl;
     
    // Using merge() to merge both list in 1
    flist1.merge(flist2);
     
    // Displaying merged forward list
    // Prints sorted list
    cout << "The contents of forward list "
            "after merge are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
     
    return 0;    
}

Producción:

The contents of 2nd forward list after copy are : 1 2 3 
The contents of forward list after merge are : 1 1 2 2 3 3 

Complejidad de tiempo: O(1)

Espacio auxiliar: O(1)
 3. sort() :- Esta función se usa para ordenar la lista de reenvío. 

4. unique() :- Esta función elimina las múltiples apariciones de un número y devuelve una lista de reenvío con elementos únicos. La lista de reenvío debe ordenarse para que esta función se ejecute correctamente. 

CPP

// C++ code to demonstrate the working of
// sort() and unique()
#include<iostream>
#include<forward_list> // for sort() and unique()
using namespace std;
 
int main()
{
    // Initializing 1st forward list
    forward_list<int> flist1 = {1, 2, 3, 2, 3, 3, 1};
 
    // Sorting the forward list using sort()
    flist1.sort();
 
    // Displaying sorted forward list
    cout << "The contents of forward list after "
            "sorting are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
 
    // Use of unique() to remove repeated occurrences
    flist1.unique();
 
    // Displaying forward list after using unique()
    cout << "The contents of forward list after "
            "unique operation are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
 
    return 0;
}

Producción:

The contents of forward list after sorting are : 1 1 2 2 3 3 3 
The contents of forward list after unique operation are : 1 2 3 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)
 

5. reverse() :- Esta función se utiliza para invertir la lista de reenvío.

6. swap() :- Esta función intercambia el contenido de una lista hacia adelante con otra. 

CPP

// C++ code to demonstrate the working of
// reverse() and swap()
#include<iostream>
#include<forward_list> // for reverse() and swap()
using namespace std;
int main()
{
    // Initializing 1st forward list
    forward_list<int> flist1 = {1, 2, 3,};
 
    // Initializing 2nd forward list
    forward_list<int> flist2 = {4, 5, 6};
 
    // Using reverse() to reverse 1st forward list
    flist1.reverse();
 
    // Displaying reversed forward list
    cout << "The contents of forward list after"
            " reversing are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl << endl;
 
    // Displaying forward list before swapping
    cout << "The contents of 1st forward list "
            "before swapping are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
    cout << "The contents of 2nd forward list "
            "before swapping are : ";
    for (int &x : flist2)
        cout << x << " ";
    cout << endl;
 
    // Use of swap() to swap the list
    flist1.swap(flist2);
 
    // Displaying forward list after swapping
    cout << "The contents of 1st forward list "
            "after swapping are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
 
    cout << "The contents of 2nd forward list "
            "after swapping are : ";
    for (int &x : flist2)
        cout << x << " ";
    cout << endl;
 
    return 0;
}

Producción:

The contents of forward list after reversing are : 3 2 1 

The contents of 1st forward list before swapping are : 3 2 1 
The contents of 2nd forward list before swapping are : 4 5 6 
The contents of 1st forward list after swapping are : 4 5 6 
The contents of 2nd forward list after swapping are : 3 2 1 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)
 

7. clear() : – Esta función borra el contenido de la lista de reenvío. Después de esta función, la lista de reenvío queda vacía.

 8. vacío() : – Esta función devuelve verdadero si la lista está vacía, de lo contrario, falso. 

CPP

// C++ code to demonstrate the working of
// clear() and empty()
#include<iostream>
#include<forward_list> // for clear() and empty()
using namespace std;
int main()
{    
    // Initializing forward list
    forward_list<int> flist1 = {1, 2, 3,};
     
    // Displaying forward list before clearing
    cout << "The contents of forward list are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
     
    // Using clear() to clear the forward list
    flist1.clear();
     
    // Displaying list after clear() performed
    cout << "The contents of forward list after "
        << "clearing are : ";
    for (int &x : flist1)
        cout << x << " ";
    cout << endl;
     
    // Checking if list is empty
    flist1.empty() ? cout << "Forward list is empty" :
                    cout << "Forward list is not empty";
     
    return 0;    
}

Producción:

The contents of forward list  are : 1 2 3 
The contents of forward list after clearing are : 
Forward list is empty

Complejidad de tiempo: O(1)

Espacio auxiliar: O(1)
Artículos recientes en forward_list Manjeet Singh contribuye con este artículo . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@ geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *