list::begin() y list::end() 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::empezar()

La función begin() se usa para devolver un iterador que apunta al primer elemento del contenedor de la lista. Es diferente de la función front() porque la función front devuelve una referencia al primer elemento del contenedor pero la función begin() devuelve un iterador bidireccional al primer elemento del contenedor.

Sintaxis:

listname.begin() 
Parameters :
No parameters are passed.
Returns :
This function returns a bidirectional
iterator pointing to the first element.

Ejemplos:  

Input  : mylist{1, 2, 3, 4, 5};
         mylist.begin();
Output : returns an iterator to the element 1

Input  : mylist{8, 7};
         mylist.begin();
Output : returns an iterator to the element 8

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

CPP

// CPP program to illustrate
// Implementation of begin() function
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    // declaration of list container
    list<int> mylist{ 1, 2, 3, 4, 5 };
 
    // using begin() to print list
    for (auto it = mylist.begin(); it !=
                            mylist.end(); ++it)
        cout << ' ' << *it;
    return 0;
}

Producción: 

1 2 3 4 5

Complejidad de tiempo: O(1) 

lista::fin()

La función end() se usa para devolver un iterador que apunta al último elemento del contenedor de la lista. Es diferente de la función back() porque la función back() devuelve una referencia al último elemento del contenedor, pero la función end() devuelve un iterador bidireccional al último elemento del contenedor.

Sintaxis: 

listname.end()

Parámetros: NA

Tipo de devolución: esta función devuelve un iterador bidireccional que apunta al pasado del último elemento.

Errores y excepciones

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

CPP

// CPP program to illustrate
// Implementation of end() function
 
#include <iostream>
#include <list>
using namespace std;
 
int main()
{
    // declaration of list container
    list<int> mylist{ 1, 2, 3, 4, 5 };
 
    // using end() to print list
    for (auto it = mylist.begin(); it != mylist.end(); ++it)
        cout << ' ' << *it;
    return 0;
}

Producción: 

1 2 3 4 5

Complejidad de tiempo: O(1) 

Espacio Auxiliar: O(1)

Veamos las diferencias en una forma tabular que se muestra a continuación de la siguiente manera: 

lista::empezar lista::fin
Se utiliza para devolver un iterador que apunta al primer elemento del contenedor de la lista. Se utiliza para devolver un iterador que se refiere al elemento pasado el final en el contenedor de la lista.

Su sintaxis es la siguiente:

iterator begin();

Su sintaxis es la siguiente:

iterator end();
No toma ningún parámetro. No toma ningún parámetro.
Su complejidad es constante. Su complejidad es constante.
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 *