LENGUAJE DE PROGRAMACIÓN
Alumno: Tello Feria Franz Darcy
Cola de objetos <queue>:
Es una estructura de datos de las más importantes. Los datos de la cola siempre son insertados por un extremo situados en su parte trasera y eliminados/obtenidos por el otro extremo en su parte delantera.
Su comportamiento es tipo FIFO (Firts In Firts Out).
Estructura

Operaciones
-
front( ): Podemos obtener el elemento situado en la parte frontal de nuestra cola.
-
enqueue(dato): Podemos insertar un nuevo elemento en nuestra cola en la parte tracera de la cola en la parte back. A enqueue le tenemos que pasar como argumentos nuestro dato que queremos insertar en nuestra cola.
-
dequeue( ): Podemos eliminar el elemento que está situado en la parte frontal de nuestra cola.
-
empty( ): Que nos devuelve en true si nuestra cola está vacía, en caso contrario dará false.
-
size( ): Que nos devuelve el tamaño de nuestra cola, es decir el número de elementos que tiene nuestra cola actualmente.
-
Constructor: Que creará una cola vacía con cero elementos.
Insertar elementos en una cola:



Contenedores <set>:
El contenedor std::set en C++ es un tipo de contenedor asociativo que representa una colección ordenada y única de elementos. Algunas de sus características y usos clave son:
-
Ordenamiento automático: Los elementos en un std::set se almacenan en orden ascendente por defecto. Esto facilita la búsqueda eficiente de elementos, ya que el conjunto siempre mantiene su orden.
-
Unicidad: Cada elemento en un conjunto es único. Si intentas insertar un elemento que ya está presente, la operación de inserción no tiene efecto. Esto es útil cuando necesitas almacenar una colección de elementos únicos y evitar duplicados.
-
Búsqueda eficiente: Dado que los elementos están ordenados, la búsqueda de un elemento en un std::set se realiza de manera eficiente. La complejidad de búsqueda es logarítmica en el tamaño del conjunto (O(log n)), lo que hace que sea más rápido que buscar en algunos otros tipos de contenedores no ordenados.
-
Eliminación eficiente: La eliminación de elementos también es eficiente, con una complejidad de tiempo logarítmica (O(log n)).
-
Implementación basada en árbol: La implementación típica de std::set en la biblioteca estándar de C++ se basa en un árbol de búsqueda binaria balanceado, generalmente un árbol rojo-negro. Esto garantiza que las operaciones básicas sean eficientes.



Librería <setjmp.h>
El archivo de cabecera de la biblioteca estándar de C++ setjmp.h se utiliza para proporcionar saltos en la ejecución del código y así modificar drásticamente el flujo de ejecución del programa.
Se caracteriza por dos funciones:
-
int setjmp(jmp_buf env) - Para establecer el punto en que se debe saltar más tarde desde longjump. El valor de setjmp es 0, y si se regresa a él desde un longjmp su valor es distinto de cero.
-
void longjmp(jmp_buf env, int value) – se utiliza para volver al momento del programa en que esté ubicado setjmp.
Como se puede ver, las dos funciones utilizar una variable de un tipo:
jmp_buf – Es un tipo de array, una estructura donde se guarda la posición que se establece mediante setjmp.
Este mecanismo es útil para manejar situaciones excepcionales en un programa, como errores o condiciones inesperadas, permitiendo un control de flujo no lineal. Sin embargo, el uso excesivo de setjmp() y longjmp() puede complicar el código y dificultar su comprensión, por lo que se recomienda su uso con precaución.
