list::empty() y list::size() 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::vacío()

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

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

Ejemplos:

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

Input  : list list{};
         list.empty();
Output : True

Errores y excepciones

  1. Tiene una garantía de tiro sin excepción.
  2. Muestra error cuando se pasa un parámetro.

CPP

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

Producción:

True

Aplicación: dada una lista de números enteros, encuentre la suma de todos los números enteros.

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

Algoritmo

  1. Compruebe si la lista 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 esté vacía.
  3. Imprime el valor final de la variable.

CPP

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

Producción:

26
lista::tamaño()

La función size() se usa para devolver el tamaño del contenedor de la lista o el número de elementos en el contenedor de la lista. Sintaxis:

listname.size()
Parameters :
No parameters are passed.
Returns :
Number of elements in the container.

Ejemplos:

Input  : list list{1, 2, 3, 4, 5};
         list.size();
Output : 5

Input  : list list{};
         list.size();
Output : 0

Errores y excepciones

  1. Tiene una garantía de tiro sin excepción.
  2. Muestra error cuando se pasa un parámetro.

CPP

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

Producción:

5

Aplicación: dada una lista de números enteros, encuentre la suma de todos los números enteros.

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

Algoritmo

  1. Compruebe si el tamaño de la lista es 0, 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 esté vacía.
  3. Imprime el valor final de la variable.

CPP

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

Producción:

26

Veamos las diferencias en forma tabular -:

  lista::vacío()  lista::tamaño()
1. Se utiliza para devolver si el contenedor de la lista está vacío. Se utiliza para devolver el número de elementos en el contenedor de lista.
2. No toma ningún parámetro. No toma parámetros.
3. Su tipo de retorno es booleano. Su tipo de retorno es de tipo entero.
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 *