forward_list::front() y forward_list::empty() en C++ STL

La lista de reenvío en STL implementa una lista enlazada individualmente. Introducido desde C++ 11, la lista de reenvío es más útil que otros contenedores en 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 de solo el siguiente elemento, mientras que la lista realiza un seguimiento de los elementos siguientes y anteriores.

adelante_lista::frente()

Esta función se utiliza para hacer referencia al primer elemento del contenedor de la lista de reenvío. Esta función se puede utilizar para obtener el primer elemento de una lista de reenvío.

Sintaxis: 

forwardlistname.front()
Parameters :
No value is needed to pass as the parameter.
Returns :
Direct reference to the first element of the container.

Ejemplos: 

Input  : forward_list forwardlist{1, 2, 3, 4, 5};
         forwardlist.front();
Output : 1

Input  : forward_list forwardlist{0, 1, 2, 3, 4, 5};
         forwardlist.front();
Output : 0

Errores y excepciones
1. Si el contenedor de la lista de reenvío está vacío, provoca un comportamiento indefinido. 
2. No tiene una garantía de lanzamiento de excepción si la lista de reenvío no está vacía.

C++

// CPP program to illustrate
// Implementation of front() function
#include <forward_list>
#include <iostream>
using namespace std;
 
int main()
{
    forward_list<int> myforwardlist{ 1, 2, 3, 4, 5 };
    cout << myforwardlist.front();
    return 0;
}

Producción: 

1
adelante_lista::vacío()

La función empty() se usa para verificar si el contenedor de la lista de reenvío está vacío o no.

Sintaxis:  

forwardlistname.empty()
Parameters :
No parameters are passed.
Returns :
True, if list is empty
False, Otherwise

Ejemplos: 

Input  : forward_list forwardlist{1, 2, 3, 4, 5};
         forwardlist.empty();
Output : False

Input  : forward_list forwardlist{};
         forwardlist.empty();
Output : True

Errores y Excepciones
1. No tiene garantía de lanzamiento de excepciones. 
2. Muestra error cuando se pasa un parámetro.

C++

// CPP program to illustrate
// Implementation of empty() function
#include <forward_list>
#include <iostream>
using namespace std;
 
int main()
{
    forward_list<int> myforwardlist{};
    if (myforwardlist.empty()) {
        cout << "True";
    }
    else {
        cout << "False";
    }
    return 0;
}

Producción: 

True

Aplicación – front() y empty() : Dada una lista de enteros, encuentre la suma de todos los enteros. 

Input  : 1, 5, 6, 3, 9, 2
Output : 26
Explanation -  1+5+6+3+9+2 = 26

Algoritmo: 
1. Verifique si la lista de reenvío está vacía, si no, agregue el elemento frontal a una variable inicializada como 0 y extraiga el elemento frontal. 
2. Repita este paso hasta que la lista de reenvío esté vacía. 
3. Imprime el valor final de la variable.

C++

// CPP program to illustrate
// Application of empty() function
#include <forward_list>
#include <iostream>
using namespace std;
 
int main()
{
    int sum = 0;
    forward_list<int> myforwardlist{ 1, 5, 6, 3, 9, 2 };
    while (!myforwardlist.empty()) {
        sum = sum + myforwardlist.front();
        myforwardlist.pop_front();
    }
    cout << sum;
    return 0;
}

Producción 

26

Veamos las diferencias en forma tabular -:

  adelante_lista::frente() adelante_lista::vacío()
1. Se utiliza para devolver una referencia al primer elemento del contenedor forward_list. Se usa para verificar si el contenedor forward_list está vacío
2. Su sintaxis es -:
  referencia frontal();

Su sintaxis es -:

vacío();

3. No toma ningún parámetro. No toma ningún parámetro.
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 *